{"_id":"gatsby-recipes","_rev":"400-360c7ccf3273c6aeb5a9e1e8cb5c32ef","name":"gatsby-recipes","dist-tags":{"recipes":"0.0.6-recipes.14791","state-machine":"0.1.12-state-machine.15106","prompt-restart":"0.1.22-prompt-restart.15347","unifiedroutes":"0.0.7-unifiedroutes.76","recipes-renderer":"0.1.32-recipes-renderer.75","unifiedroutes-v2":"0.0.7-unifiedroutes-v2.135","incbuild-collections":"0.2.17-incbuild-collections.5","telemetry-testt":"0.2.28-telemetry-testt.129","dev-ssr-2":"0.2.18-dev-ssr-2.60","ink-compiled":"0.2.34-ink-compiled.24","create-gatsby":"0.2.35-create-gatsby.104","ink3":"0.1.59-ink3.23","telemetry-test2":"0.4.0-telemetry-test2.327","v3rc":"0.11.0-v3rc.0","functions-next":"0.15.0-functions-next.18","latest-v2":"0.9.3","telemetry-test":"0.16.0-telemetry-test.296","alpha-ssr":"0.17.0-alpha-ssr.263","alpha-remote-file":"0.21.0-alpha-remote-file.48","coreutils":"0.23.0-coreutils.29","alpha-remote-fetch":"0.25.0-alpha-remote-fetch.79","alpha-qe-sm":"0.25.0-alpha-qe-sm.46","alpha-9689ff":"1.0.0-alpha-9689ff.13","drupal-next":"0.25.0-drupal-next.94","next":"1.5.0-next.0","latest":"1.4.0","latest-v3":"0.26.0"},"versions":{"0.0.1":{"name":"gatsby-recipes","version":"0.0.1","keywords":["gatsby-recipes"],"license":"MIT","_id":"gatsby-recipes@0.0.1","maintainers":[{"name":"johno","email":"johnotander@gmail.com"}],"dist":{"shasum":"74725d2ab9f04121c3ece959d76be1ebbc7f0974","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.1.tgz","fileCount":9,"integrity":"sha512-qdhlUyL+glYIKQ7wORxG5ukuLp77Dxo5+lVN9VNVQr1tjjBbnoU60o0MsYXNTfXQFeGrLiIm4HEd9x3IyiWf0g==","signatures":[{"sig":"MEYCIQDDFjjA7JLsHEQT/xm8yNSXV1eh5aJX+26e/5FPcsNfRwIhAKM62Mqk++XiMQt1zPpq6Od7IvqwfnlblVuDNsBMYDBt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelR5aCRA9TVsSAnZWagAAUOUQAI/vO8CrMZeo6zKYeUm2\nJleDl3KRkjrBqbY5fRj5pDjDVGpUvg+ajylTercQEhd2Uu0t7zrbg2oKtavu\nsA7Go/5cyP0CdgmoWzovTVw3gvP8GiWRVTmUNm2jwU/mN4RxzKP8w4pXlSSk\nfC0jC5MnA7aZ64NFOne+vm3lyI7bkzQ28RLEXCVdkDgr5N4XAl6OQLNFkUW4\ny/k5MPbLJESEj/tzoYtUyQBBVjTy8XrptbHqlfqdmS6NrokGArUWQjMQ7z35\nKNyfna9o0CFerR7yezPd6AsbrvH1ZUzgbM4o0NYvryZ8t19sL3laX/tns4Z1\nIC5infQ6r3Lgtj/y7aemVag7TtYD8jvrU6Oy8Gigt/5xeub8ATwfKiLn4Uqj\n1/Pn/iSteHEd+JuHrJP1Bdt7VVMbwLiBX8CazVQ/Y7mFx5x7olslbFB/1l5X\nWJ9FzYNIWohjpdumRprAGNj2qzHifGSIdoRT51sAIPPiCSk0etEAs7AJp6U3\n074Udgyeynq1izCNodDdMfLn2lMWoPA9a0kTjiKwzoostepko+pXmdr+Tf8I\n0/1mlfLVZjmITgcZzbprm5BSBCiFdRY+OW3SBNY2sg2iGhHBnn9b/bQYRkMf\noxVQgmKcbcSSGCrpoamJzx8Q+5bDr5GOS6PrD1VahFkbzhyzjn/9wOXkcv11\nTwWM\r\n=OxpS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"johno","email":"johnotander@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","_npmVersion":"6.11.3","description":"Official Gatsby recipes","directories":{},"_nodeVersion":"12.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.1_1586830937723_0.9597500173839646","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"gatsby-recipes","version":"0.0.2","keywords":["gatsby-recipes"],"license":"MIT","_id":"gatsby-recipes@0.0.2","maintainers":[{"name":"johno","email":"johnotander@gmail.com"}],"dist":{"shasum":"9ad93ccefedbec60b7dfa9961795d4c4c834f967","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.2.tgz","fileCount":9,"integrity":"sha512-9eK+mEUP3JDe8+Iu9wmI/X5S1P1MBl5k9+7fEgQhnG3bG5BX3BB9Uz/JMwjR5oMUyfJJ8LhAeKPsM0Hlme3zfg==","signatures":[{"sig":"MEYCIQCQD7M8kAbgh8n/2XDoR6zT2oE+GplmzbJu/JfytdimuwIhANYn0u7uL5PdqoQ+m+oJ6IbXIkDw1AOdMQzEa90rvdJn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6922,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelR5wCRA9TVsSAnZWagAAhykP/RQzX1xVkIWspQ846kxl\n1f3O6rX83zOfsBvzbMBIesjKTgozfUMmzlpeaKe64imqaPGrixGaopBZOqHZ\nCJrfaPAGkDkWK+iFlThtKwddimcmnNcM16Y2AiPaMSWr1UBeYnRRau5ZwTbE\n6OWnQ5aIHqctihqH0jeyRojVWo+CQYdstjbfK9ksFVhcoBGROg2JS7X6Ot6n\npKzVRMnoz20ouRn4KtugkZcF6wdUi8Zoq/Sr5beEzzlY9ES4sjV/uWHJT1zt\nVdhelw5nYHOqtYWstH/wYFtXOTGefvj27eovG0ySHqgDp9zZg61a6+oMBt9m\nW1OSgjJJ8wDGkwnqMmGkOnZZEeDWp4vhGGEs4dqkPZvbF9jdcq3HaPmte/us\neZaLBPLBljWQYyZ8p8p/FfhYAIBdEOxXu2p7URWUNZpFbpcysqNU0QRWTE3U\nsbmmtoYEA/5omAnn6ApGNbM6vS1HgDkpJ+EplCU2vdWdFTk7ymEXtVVe7gxq\nvBwCe3StQaqdHOYGcvwLkIHkXwfOA40A5CAoieXhZokR9ShqhKdNTct2yo5/\nIaIb/NEtm62bYKZGYtV/dlRkWdaw8KvAkonJDr2Mc8anGYO+12ATbakvdFJd\nDuZWfVKVz5Sws7r6nCMuHOsEuraRleyxVBG5zcgwwDN+YsnHl3Wxk39A1Ye/\nKnie\r\n=Ph5i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"johno","email":"johnotander@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","_npmVersion":"6.11.3","description":"Official Gatsby recipes","directories":{},"_nodeVersion":"12.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.2_1586830959703_0.8259895058484277","host":"s3://npm-registry-packages"}},"0.0.4-recipes.14666":{"name":"gatsby-recipes","version":"0.0.4-recipes.14666","keywords":["gatsby-recipes"],"license":"MIT","_id":"gatsby-recipes@0.0.4-recipes.14666","maintainers":[{"name":"johno","email":"johnotander@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"}],"dist":{"shasum":"fd4f1f90403526cfeb9ad6e85d72ea87636bb9c5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.4-recipes.14666.tgz","fileCount":12,"integrity":"sha512-mJFdMgSb0RSOH4p4A6RRrduWFEwMofJyTKh8fUzIrYU3IK1iRFOw1lFj4ofMLpL4LHWRzLH8rISPjlds5R6SOw==","signatures":[{"sig":"MEUCIAdqz8E6B744ozYw7/FaAc2i4gXuzHkFAtOPUn59k11cAiEAxFnozHFB25VNdW298NaB9J5ZCcD/v1/UbRuUYbV0HRw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelgugCRA9TVsSAnZWagAAuNgP/3yIpCrGtu8dgsHPioEW\nKvMzqxl8qRMqWsvFg3RjPzC9TmadH2GzW33Th1PbsgQGXMvLLYbuid0DYKuP\ndsHxiqPLngqJj0sCVnsaB+hsfOZRCeUuU0oujKqe2b+KrFA7iVdPQdxfkNlC\nOXSK05oDhC2at+owxRz5jmmF1yHhmr0dWWTLbSD87Vdfq9rpXEZeWvtsC+pZ\n1AYjEpVy0gP0bDKZVOfaiQo9BuhWkdKBySY2y4R9XlgIs1dC9nrlOUNl6CBQ\nxbjZf0dxdY1y1BVu4sFKX/Exyd+9Vag4m5fWXW+izIt+aKKcP9Rt9u5hE06Y\n7kHD+5qP5KUpNdXIyT5Y8XPdLfd/O4oxhB/0UY4QgBzkA+I1yF3gSGQ5dS6s\nZMoMJmerWvTsjddncymSAHRQuZqQQfb/X2Ru4Nz/TQtDo3nVDzgZtPXcR72R\n6zQ/r0hxtoQBcsUtwkrNujvdpcb/+dx775ZPAquvJVrVLVDmB2nBBZriOxW2\njilOptp1DgZiybTmbqUbq5dtCjFFQZCqLznYo0mumGenenybq2oyAl956YCv\nbSJ4Ns8W4yVtinPHQROQ+d4EGwoVNTYXrNbDODS8TTTbeizZnPhq9pHmE/dj\neBEYqB43c+wcpe2phg6Te4FzhULlC6RMDDrndcbnt8JSn6/W0k4LtqMC2w4c\nFf67\r\n=nr05\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# Gatsby Recipes\n\nCollection of the official Gatsby Recipes (alpha).\n\nFor more details see [the umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991).\n","gitHead":"69bac1b4feacda226de3e8ac351f54e819bf67d9","_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Official Gatsby recipes","directories":{},"_nodeVersion":"12.16.1","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.4-recipes.14666_1586891680154_0.4350439498770444","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"gatsby-recipes","version":"0.0.3","keywords":["gatsby-recipes"],"license":"MIT","_id":"gatsby-recipes@0.0.3","maintainers":[{"name":"johno","email":"johnotander@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"}],"dist":{"shasum":"9c62dd8edba8cf76cc3614fb2316d4dac7055c9d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.3.tgz","fileCount":14,"integrity":"sha512-yY1g0c+GBKtPQkQDyjXgjlDRD6ppToshgfoocvCEYtPWRJsQXud1dUSdM3pEiNmWSd/NhqqWFLnayctTNiuwcQ==","signatures":[{"sig":"MEUCICx8IrK19hGHMw4mGcK8FtNTojCsbSoGY74gLk0eH1glAiEAggHgKYTjF+zKox8p3Li/92xpH8MfsiRaVtYflH8QqpA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelo2KCRA9TVsSAnZWagAAQkwP/07jt23fRmNUtfO41jyE\nBUnxc0ss370dJj/mh4CSJ+DfFWkLOR3NsKJoJIaOuzxJEKJzNld8i8vzIa4K\nqC0QNWaQH0/++IFMi8RcR6H+g/Ybezd+baSxOMJGkw7rCs1P3oSgqpksqHf9\nNHL2c72QRZ2W9dE5AwniA4Tzxa/mfSTeil9gW3xfmccgVf/sr2ybg9T80FVp\ni9GIawn8P6bPhTcmmVgRLoY02RqImZrh5HK1MnvLaCNVNA/IEujmsmICCxLv\nP4VotSI3D752l33Z6poK4VZWa1wqDR+qrEAaErK6sBIz+mJRMDtUH0UhTkIR\nbyNsvtl/io5WUDPLbkLZLWonEVufq83e6/n1J4ZjMs3rxfHAtISwXaRE+EP0\nJYdfip8hJZm6A0ZPE7O94VZyjMj94B/XUG9EtrW+z1ab2ta8JJ1ie37WqGo6\nt6EkBuIRiK+l28S5CLIo68qxf6E2Dqb3UlNg4Ob3immirMexDbx29Rh5Qf3E\nSo6EtfPj0dH2AU6tM0Wv6EQhs+1/MaHjDnYHvY9khMUf8QtZq8Yh8666DX09\n6osWoDoZ5RWIU30CIMtI66c8xO+7oSgmLzqCWy6aYNH4Mo/FoacE1reuNYQM\nBBN2xBpQGMsaCMFAWevregg6ae3YcyQvMVtti0jp89KcS+UrnVON9jwcyuw0\nweAI\r\n=Ab4N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","_npmVersion":"6.13.4","description":"Official Gatsby recipes","directories":{},"_nodeVersion":"12.16.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.3_1586924937620_0.07940502358546397","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"gatsby-recipes","version":"0.0.4","keywords":["gatsby-recipes"],"license":"MIT","_id":"gatsby-recipes@0.0.4","maintainers":[{"name":"johno","email":"johnotander@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"}],"dist":{"shasum":"521e7432a1b1636a2900334962d522f0bfc25348","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.4.tgz","fileCount":14,"integrity":"sha512-tw/dgm2A8rdsXvkhsebjgmRM113kyiFwhBNNr6hQ1LSMz1pInZq+9XGsswefhxLAQgkBPj2CZS73N9drR1bheg==","signatures":[{"sig":"MEYCIQCeYQ58ak/HRXPYya2Zi339BIhZDTJxV56bkYoFZ8mtywIhANet9zkTHeq5LQb1E9Op6FkeOPrAW0RnSsi57tGD7LX3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13415,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelo2QCRA9TVsSAnZWagAAs/cP/2fJ3n1o565+kv1GZh3x\nmsgWoEpL3mQG4Vnf/d+cJ9DkzXteTGxxVTrd4M8PAHLljDS2BSZ8sFddZC9w\n3tBD3Ldl1BvYki5HgOiF1NcIPZHkQpaZsFed2H9JsHYPE6z7liUj6gwiZD6K\nALLjoKoJzmJiQlWqp7O2Ufyg3FlC2BzxEJWGdooIGc3gnbSPhMiqFKTxwt+8\nHnGcmOWE27njr4UTTTBQKtt7zI0gKihuGwxMxe0h1bAe5gD3VfPBn1KiIsG9\njYKL/Uq713tUlMSa76jfL6VYoR+tVFGYQLjyal0FgYQ9AM8+IPpuSAMIb8pO\ny2XTffWxUKqKPfDYO5y/46dEV4r3EzlFK64PTNaZXayzPaS7RhkLrjvaU2/v\ns5fGh6GXsaz5dIP4hURA9T/CTB8RxC3LJWWpU+fv6quhtGplFs1JfEcbNfCz\nyD3i7CQCp+EF5VHcmDo7pZNzUSB1ECeOM4u7OOlJ3b5G2z+iIzU6HuuAuZNj\niuJ0GSj0ObJxJICtHTBwicvPCkvj/Zz7W2alRt6NN8ofRt/DndOaH/vQCOBO\nMnn8FcT1a+JGeE+0vT1XQvqr+89QHR54qq3YUde7IWNEhppNn0LaiTBgpLao\nq6+k0J0VdPQdqS2H8RLzppmvtfvTM2E9F+Iu/tWNQ3OZ94YEdKy/SZhjM3oR\nI9Ob\r\n=BGdJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","_npmVersion":"6.13.4","description":"Official Gatsby recipes","directories":{},"_nodeVersion":"12.16.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.4_1586924943629_0.7933155874176323","host":"s3://npm-registry-packages"}},"0.0.5-recipes.14780":{"name":"gatsby-recipes","version":"0.0.5-recipes.14780","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.5-recipes.14780","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes-core#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"39ffbcdb1b954e0cb245031d2001e0d06acc21de","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.5-recipes.14780.tgz","fileCount":127,"integrity":"sha512-KUzNc8mpW3RwjAKGUcjPxPRW93+tBCgSWQKAJMCMLnxfbYhhM+kjY//KbDBwL/6DHd9zd2rVhfX18mjOAuDomg==","signatures":[{"sig":"MEYCIQC9fLeDlQj0M81O/8qu4YkKF1rVixNbqXfb88ueod4/JwIhAJDOSacZNs9dPy7s3CgUyDL60vRhW5keugZaRjdUOqJO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":283450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel3Z/CRA9TVsSAnZWagAAYwgP/2yxU+FYhZzXyvKwIaCi\nO1MJ9Xlu4YoyGUBraE/hXBfIwyWp7RsEMrzFCbGM6lH1yctJ056IJRYAZ60U\nPLOfx83zx+hWNlVuPshUqfzJGm/c3eRjw9hpDv46eIccz5b4hqKFzZ50IKMN\ngdE8+x33rOnICeoZm6hxA8LPLN58Nlk3NffgFnlPJhXGJqOhYkzhouWne57G\n3GrKzekBQu4AdfL8ODc09VU1WKAI0dElovmmKwTTfRw8Q3F73RwyX1DEHepL\nxi34p2MOQ2woCXFU2+sj0g1ScFRTr6kqc/Mv3UAOB2kaJ38XaD1fV0FC8NWE\ndTQHNcVcTqO2V6B5SBp5Ohdu/Bigu+tG+FSK6s871F1+5LtJz9D1eRwTP1nM\ncEvRyZ2mlF2voXz+sJQ9cBRUUmJTGI/57yHj7R9MXhDsZNpnk4a38INbTy3j\ncMe8cLYEUoh90aNeq1InQ6i4u1A/6jH+s+gyvs7Aqs82idiVEOWBEF+hnRaq\nj6+rA+iOFr9pknRPsvwZHSenShKgYiMXyRqpUNo9uVHObD+CqKHVJ1gRIWs5\nQOmToaFRvFyefBjqcLXslshMzSwkmj9jdcNSJ+27HdgvfrfFOz6WklUI8jph\ncV4CKJyBXaLoPOgG6af9K5Jy+/BSb3znBEXj6uoOCDh57WnWF2z7aa254Rb1\ncMkC\r\n=pgPz\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Gatsby Recipes\n\nCore functionality for Gatsby Recipes (alpha).\n\nFor more details see [the umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991).\n","gitHead":"8064fb4e8a96b22378befe7de785cdbace51319a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"1.2.3","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"1.1.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"2.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","babel-preset-gatsby-package":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.5-recipes.14780_1586984574865_0.1367169135863564","host":"s3://npm-registry-packages"}},"0.0.6-recipes.14790":{"name":"gatsby-recipes","version":"0.0.6-recipes.14790","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.6-recipes.14790","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes-core#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6cd00a2afa03990d69db760b1f13872b6a851681","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.6-recipes.14790.tgz","fileCount":130,"integrity":"sha512-x5viCi3b34XwxzAeeJTt+yiNNxSo282wZ+UWIWOmqPgORJnj8l2ZkPUsC3cDd3mkA4GzO0O9isnXF8mkRSaDhw==","signatures":[{"sig":"MEYCIQCTP4C0NAqhYaDA4+IukyEHHaSsI1n9+AdyH6aez1zCbQIhAM5qZ2Rc9qAVdlLOZEO+DNWqe5VnBhgT1CUduRH8aukl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1363985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel8LKCRA9TVsSAnZWagAAKYsP/j8TNxItEhQoMWISw7T+\nVTQCyw7AAnXa0TxYUfYPPOiM+OwxByWSbrgkyhaWrDaVkGVxi5ENyQK6Ef3r\nwEss7w+JdSLobbMzEoxcX7CH507MbENo3MFp1QZETMozqHSqke/rlbXcWP1A\nXYh9qw4Cv1eWo+1zICu+K467TvsM3jkc9Ao31or2kfnluln+kKZ9ASGvPfyo\nlXyDa/gBXzr51aUJ4hhi20pBXghQ51xP8azK2/vpdxEuRB54omD0onN5Otcw\njmr3FEvw9ltZXi9Mxtupsx0u1AkeXKLPDi5saZDhmQiU0bq14MEPKJyGm6h2\nr1Ij9/9KFkoA2Ajaw488qcP6sWRRnpmGnmjCtibA7IS8pwcU/o89KjXbQplx\nTe/lUTDaj8JqEdUzc6DNgx8QruwWtwA4cxC2UtmvJ7fIZrSXEqplkRp4Wxiv\nyVVcFtIj5mg2Mk0Ed7tTXEaM/yGkMGoLG6nR0cNNK8bvfPooxHqb7gBKQPFY\noKLzWBFhxZsIsDxjoviXdTbe0LVD9iBfWNEkQfUmwZi/lRziMlpNLV3AP/S8\nAPosrthTmmmrkxu9at4t2fggwWPuYJ/tArBOhJqeCU7cuNZeWy5IRxNzLcXT\ne1taBCs9b9+UenoSO/3q9tfJW1il7TXHy+bqYAn/3AMMTW677f3aIRTtS/gE\n4tRh\r\n=gE+U\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nCore functionality for Gatsby Recipes (alpha).\n\nFor more details see [the umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991).\n","gitHead":"3dd8f6ca4d028946f50ba61699b458a126bc2b09","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"1.2.3","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"1.1.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"2.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.6-recipes.14790_1587004105679_0.6659276314959091","host":"s3://npm-registry-packages"}},"0.0.6-recipes.14791":{"name":"gatsby-recipes","version":"0.0.6-recipes.14791","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.6-recipes.14791","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes-core#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c71682004b5873789a1156be68a0468d17c8d888","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.6-recipes.14791.tgz","fileCount":130,"integrity":"sha512-esPSrkVFQIcat7Ct6hyywAnEVvyz7gfE45oOgQPrNZISelIQz4rwAmnO6yLXyeoplGxK3XqMNEKtMlKKHWRz9w==","signatures":[{"sig":"MEYCIQDFp/PGxr3B/CXQtyjOSbpIug+oPLbhWFewDGk7y4n1qQIhALue4/Y0CHATP7zkUCquY35eyh0r2W5ioXfy64TccHGr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1364059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel8MmCRA9TVsSAnZWagAAm6UP/jb96ataoCA9Be0lsLwk\nqJD/lRN4I5T4NnbTFvPQzxYJzQ9919tUjWJ2a6IXgHsG51hmLq8FaeGLVcdb\n0SDncn03sGGJtKZVRiFZV24jbTKlcqY3GC4T8eFZ1IUYkH9omeR9aWki/Wbk\nHB0TYNwjRz4PBRc0ImlEwbEUz6Zcx31MS/bWLDdH2jiNgXvkJGgRy45T9ue7\nH7pNIHgt/dExnceH5oUWQU1FmsVhV3KL1849iNGXW7B0mVcP5rCuA3g2bW9w\nJ6g7XibDxib/6g4RDHqZuYXfZQchGeoXqrBSAFTXas2q0fm9jSbF1iaEVTfX\nojd27ZsSCd2TKL+sP2Z0bCuwQf39GTxZtr8No6DhiN/uN2b2Pd9PQUm608bB\nRLMWMNu4ZD9wWs7NyGTlqZjhSlfNsDs7WcpBtI5ZEfbAMksj9Lv2gksUnkth\n6sn050itrQnCpwDRi/fxlDoUsmPFtTH6uF1ErgY9ALn0bOFL/ikS3Gw6G8M4\nnPzd0qY0vxb/te7hK/Ii2xWsgro8ja155L/X0eAKVvWz1wNANoWzBg1/V5JS\nBjCHfvJSmZ1TQBcG3ayy6LsMHJLXrO9YGkcSgit9DoZi/OtXx29w4/OkagGZ\nWZHBtJzFrSpY/eXpZ2ojRaeaXV7yFeefCvb0wfaPj9oDtc2ui9DkmjsQJxB7\nbAUp\r\n=iMf2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nCore functionality for Gatsby Recipes (alpha).\n\nFor more details see [the umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991).\n","gitHead":"e8562726b97461876dbf148baf1fd7bf23d12d08","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"1.2.3","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"1.1.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"2.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.6-recipes.14791_1587004197470_0.6471106312467423","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"gatsby-recipes","version":"0.0.6","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.6","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a9ac608134cf7b1bec0cadcb0e1924681b7c6ade","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.6.tgz","fileCount":130,"integrity":"sha512-Ql/K86XQ1PcJYfoXDJURT0I+gJXkEAZM06qJ4C2X2F47rfDrc6BspwRWvIfvBBev+Psa6TNHw9uHwhPXvGs69g==","signatures":[{"sig":"MEUCIA7ZuK8CrugrM4MRaaFo6CWN5oh616yNiDHFCAEYHK6HAiEAzZR5qFbD4yK3e2KjigpBavqdtJMpOSnUbPdX6l8DcnM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1377325,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemHvPCRA9TVsSAnZWagAAoGYP/itZfeXjjigqpBZuaXhg\nQBsT9J71cgexopQRspBCHLJPXJt7Bn9gIbROzEdxPOMTJrScoUgLKBjOUEGN\nTCWHJT25fbNTh/gUQLuJF3jfnJWrrjoCMfxiaxUrv1ic+gNmzRFBC9frdzCm\n6pkHzEFUrkiZkccGbHMNGibiGFQ5yHgbobqlfKAW3EZy8s7An2JqIhws0uQc\n0DFczUnVOZVGKMyz4PHiLFdvPYgE172yxy2bY4EpWbsqZv229Ytfj0SbIdcs\ndY3fIuLC3UEPrASv7xh/bRkKy9aEx6a58j9AVQ42S+pAlvCVRb/tjcujdzaE\nZsP9DtrFUy1CBKR/sO+1Fd5fx3CG1Nq8YUZ9TFCiRU4Jhuh/oAsYPTUPmwgb\nGGBIx3TGDn4uFr1tJcsCIodu3b5ICJN4YS/HC9jPE/Ob0BUq77DhCy8yEInp\nwSnC0i58wfA4i1tw9HgRww753cGG/xCwgjTfqIx4UntpAUnkOl2GgCvur8kr\nBt9VfQ417Fgw61t86sBwh2i8jAkLkxwPUIkow21dqNMlovhs3ILb26lh9evm\n3unEjaG37/RwMyEvttYoGXM6ii1kneZSrXD5OUwa6SM8nI/LEpn/i6UH+W1Z\nyUJ5b7W0DdkTqMQigdgvD4MGEpWkiisZZJ2NkmVOrZQhoV83Ajs58ObEztKI\navMT\r\n=eNAU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"d3823b5b2af478ce861a38413ee6b4d4f3cc6da9","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.6_1587051471137_0.5012710285346067","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"gatsby-recipes","version":"0.0.7","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.7","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"19806ab30c96abb714529338339cb420a24adc61","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.7.tgz","fileCount":115,"integrity":"sha512-WTO7+EU0n3aEGgaY1UyLoCDtk3MB9o5L3YssnlFwiFBcuHC43jE94UHPORpZ+7vMYU+1VeKGjqJqjlfTOAdv9Q==","signatures":[{"sig":"MEUCICq0wdCM3gDMMPsKMei07Ay4qWaxZuXncyx4RogtOiG6AiEArptiSarO/bp8ygiXIAav/yRShI35HzYd3FWkRszy29M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":258981,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJembeZCRA9TVsSAnZWagAAnmAP/2PabRfB82rLhTgeK75B\nY0NO3y16enP3gLmA3+JPqpHvJu6gQI9lreL6NoNlpzWwAPEdbkMCbQuR8zyJ\n8iwYvNEuuCBMCJL/deo+7ll5kMPhkmFtuSMPNEIT5hUVgK0AzyYeFqw1ecZb\n4NfPbezEt/MUi+pjpYULhyXez1/8xpsUTKhNmG+rcTdld9xgi/CtCknsNDSF\niSDninhtsWC06HH9olVjJePLNurNALdQFweIvDaI3gz4ieLyt7gMHj2dlKeI\ndn7HhtaJ6jcbD3Ob7uu3NAU1bNbLDmZdA4y8fccqWf319H3fACw2Pi1swR9D\neDWjE6JuJ7o6iTQJzJ5W7eWy3WtU+e0r64rWu7hTTDFEdfqL/8by7mNp2pFv\nbOPzO170tcUcJkzyYeeQFQXkNqmrfuGZM5NMPZzu9wPijks5SATql9BJKQXk\n4ZvrT33zWnAEzBw0DewnTA46tZvOjXggfkwxzWwV9b1NsVyS2PhDADBykCd+\nU7aVGsIvWqOuHQVCrA9p5DskX9PaZQObhHXiaLEVvHqHmWl7/fpqlYKeTsty\nNvjCRbqwWcTtkrJh/l7uT3j/aEnolnO1D7zNJ1Qn2sb50RngqOJ1nYRfGmzC\nhXMi4vywLduE25b2+06W29zJt18ca4vtFA4MdxKyNAVUBgIAyMQ+VuW8OJqW\nJAQI\r\n=20f+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"8b6b9f338b6d695a30c80ead459c3a9ca2f165e3","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.2+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.2.3","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.3","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.7_1587132305524_0.6206313814844948","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"gatsby-recipes","version":"0.0.8","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.8","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"59d62af5e3025f3012528413c9e8ef8caaed0e8e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.8.tgz","fileCount":119,"integrity":"sha512-EkfRUg8bGyxe5icK7yxXvE3w2n+Z1ZfEFcQpLB8cbPLU1C0qJPIFRF1BVi9cJWWyrB5F2EWcRs1ieD9dv6HivQ==","signatures":[{"sig":"MEUCIB+gZvNUG85VjlCH0eIzkA6cbk1H2Yl6OKiv6wdoNzx5AiEArqN1CbLiOMexws0r3ODinT3GpqufhtzmSYfhdOH5PM4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1343630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemyUTCRA9TVsSAnZWagAAfMEP/R7B5BP3fV7wM5mwKwg/\nNHSFqTXCpj5xu1fe3kn5bJtncl6Oz4lILVC4tHsVFBtxAE+r4XWPCctIMCUT\nptLZquf6qctzqSxju9AopnpfyZ4qytVA2hoXU6ubrhzFKSmJykNWbGx6YPHA\nl9cZZi4bPG2HOsHBGPthDQPo52WPKp6Gr3tjiSCbD5Cx9ZtQKQ8DsnvzpROP\nI6bUhkXvoJq+BEjeqlUL0S9vckBfeFzU3gcfB7AMWTkfzxUcS/r9nZckkxqO\nyqWsQ9ehukTQha0iuH3FcdzMTwV8UR8Mp9nAoMB0NSDTbGHn0HFht9Ct8mFw\nWg8nWsEXCMLYwArxrtZByUUZ07r6Oh8a3Vt1r7eeKhHIx2yJ8YnE6iE1cpF/\niJH8DY213o6VXeyK5uV2/VtPkwwTLK5H+0bTmIrVfbjkWK3ZEjb5TjzKuU3z\nioLyaa8/5DujD4JwmM3x3TX0yy+98K8g4sORCVglAeIQBsr+FGUEBn8I2tOH\nf6AbU9AncMXtCatCLQx7jw7WjQMCwk3FmJEcTT7N+RfxxNqR9lU4k3JU3WM8\npUqR7B/9aKRiHwKhFHiQ+z81O3tExGcm0rLpRz2oNd0n10bqrMPY6FJ4KHcK\nOZ9pZ0O0jPrGuzXoUQiY3RbApEpHjO+U1J9qvzWe29kCxTsOFygggHDygTmR\nUKom\r\n=uDdv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"e0dd6f607694d2f081a0d2c56220684de4c7e496","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.3","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.8_1587225874854_0.5271622195801349","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"gatsby-recipes","version":"0.0.9","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.9","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"32daae70a016629ac2d5a9b746915553b00868db","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.9.tgz","fileCount":116,"integrity":"sha512-DdJFvVaGaPfTSajf9TwxXx/G49y6an32az2DE1SrBymhEWYcyiGC6B983sOyuCtasNgKok1pzutXSbFnajL/Yg==","signatures":[{"sig":"MEYCIQCMxHPtdQtH10+wTUKqWRjJ4mF07O8BhBEFMF3QReS9OQIhAIQa4tUHP7RAadfN5sHzje6bc5cFXUq///FukENvuCRz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":260575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenU+bCRA9TVsSAnZWagAAam4P/2WCJPPbmPTAAWPHK0e6\npiXgLORm4CxG/KumrbaZejeK0u0NVPe141wXLGJL1pq2R7pVp8LIWxZ6wmQ/\n2XBW4WmHmeVrH2n8ol5rSOVWIfP3lkN2sEJfzpGbwX2wH8UGRkqt1yLI0XI8\niujRhm6RWUyNu3z0qexbqStQUTbch8GkOe7do1Ed5j1kh0uNOiR4Qt6WxPDG\nOPXUF3045XhjodXiTlVltKa1kqRfoAqtkJsM9BH8Jv5wMp5/kNooExTSBE2h\n6se5I+IskuuU0I5ThMQUsUJDS659xhE3a2Giqv1pRPZ/2y12hMwzI4oDZ0E7\nZ2QVpHKD49KqH6ZwALrhTXCwMXvtAuZsXGpAQKqIPR7N4vwRYF0n1vh3yKHs\nmtryWbnh+bVwsoWbnyjLLzWoB7+wfJ71mnHVgsWpxyuzhDaUrzT9Gg7dnvP0\nH2ZjOGAOMBkIArjo7BJ8ek2cKE4elzZ9mEjhVAWYC6ne9oqUhcgiLVB+mATD\nH8apKTsl4qeYDYYqUkm6qY6Tv5eKkhZUC8T0fR92Ik4tw2ikwHpyWh37A/2c\nMU1W6cGVUzpxcrUaajvk2oM6CuAaEGoWpVCjgbt3imoI+P4YFN9unOHCODTT\nYVHavbT9EShJKboa7tAHcPxrIxqAd+riwDmhXTPx3DQ8KrzNML/9ckhKPnxu\n7q2B\r\n=C6rK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"2f353f1ac6c0dc11a1c1a7ea20910439cbbf73d0","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.13.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.13.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.3","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.9_1587367834908_0.5728534533751186","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"gatsby-recipes","version":"0.0.10","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.10","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b29cf0e127080459e134b06525d4d37b47076af5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.10.tgz","fileCount":125,"integrity":"sha512-pGMQrsPZdoN0thYtUy7YIney6TMNdyXbG2S0HnD6XQI26INGqKGhFvoFtK4bMBv+bGB51U3fW4gAsedITLIuZw==","signatures":[{"sig":"MEUCIQDnCktPKsyJNbbYs+M6WD3Jj3I1P8qeSvO6KD3i7C1l2wIgPNgiOuSpJ6qjp1U+FhroJgJu2T5lmrUJWRu4Y1dSZ0g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1372667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenefKCRA9TVsSAnZWagAAQTEP/1jaFHIpw8fN0QBq5LQl\ncqUKNhefOuIq/7pZA5IuCYML/7Cyj62/9LCLIijvJzpaQtlqjQskAmQjndN6\ndKB0UWstQ06/wu8ifHBWJ7FMu8PgMoEmNw2lnUoP9vbeC/ygitI+oXMhFhIS\n6Qbs3FdBoIT4GdbVMRZZuxNOZCmwSKH36/bCFbATAhm6JNfC8hoe3HzAFnAQ\nziXMBSr1wu3BoYwVKoCfgiU7dX6j42JK2nQkmFfM2rchDOAnwU6Ofyms9/WM\njYB05u010r9KRsQXc8fpMuYUU+18XPecL5yLQFttc+ZIBNIPlEE3GHVXCEGc\n+XsaOfK+g5fFOaM6r7aidZXSzLkrOxZvNCPre2bNmHcUxN5KsqsTga6DWngG\nkEgmQbNwpaOD9phwZ9iAvPsUHziY4JP6gYE4fJQKPAmD+Mzz+JRP/OfX84U5\n9b4nd6aGgp3gN8BDYfVSOZz43U+b9D4sg+PBEJM9YcVqcr94GZhe4qPfH8N7\nPLI3Nzm+Ihz0xCWJE4vtl3ubsTBFeYVkmobBagHQ0U4IFs9qdnTpF/GILQ7N\n3dOeELwDmKhkc/8XoYiIZkKAAjbg+RYr2T+aLXqVdsGR1eU5e8Hbn/2+wGe0\n1Uf15nuf2jFc/Zx/QKugOAx9A/NlornDrcPLP3edWz6f9YqqfckOZRU8+Hgh\n0cGU\r\n=JmPE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"c8d86ae086fd0b6551b8e002a860438a71956da5","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.3","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.10_1587406794093_0.4192251519499559","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"gatsby-recipes","version":"0.0.11","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.11","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"89fde84ee2b2e0a3b4b688cd29c0a6f0ad5d129c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.11.tgz","fileCount":123,"integrity":"sha512-ZVoKiKE7OztVGuYe9z0tOxyJaYdR1StGH77XSRqTu5fkJLjDoKKMEekIch33/EMKRI3pBQSZFa4A7ZeqWiYtCw==","signatures":[{"sig":"MEUCIQCADaPHraSHG0W19F39SyrOoDnZ+GUYgfZ1MCaQfhcQpwIgfY6dnH8es1QEwze48HGoSLPcXUbKMtIjx88C0Gsjfqs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":290269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJentZ5CRA9TVsSAnZWagAAluMQAINTMvf1W+MCltj1S2vn\nHhPxp9bTHDVJ7ejJmbwi9BLNTEwKgDFF3DmLPcyjvs+BZrPE0ovX9AcD2cAi\nmS/oSjykCcpcvMEJH2mJNV6qtpAiAltQTrUSjC0S/+GzntY5zAx3xmvoOOUL\nQEFXcJQzrJBEc/dcSd6Xtjw8WNe25HPqC1Dr7IngTf1MRjrFih4KEEx3fJ49\nKfahxikdns3KLz+/ipuf5r2f2TCsPN8WnStwoFXZnX199p29yrcZU/CkxtdT\n7Ewv6156ehRTQzztcLXA3m46CvtVbl7ZN98VeERukNy3yt7I+LEUSnrJP86t\ndXdcpU6EHQrcghhenOkIHE0iohzLTMnO/8kxCbiRkzc5ZTWOKQWJeltsr4vQ\nIznk6QyeOgf4BkbxkL3QQs4ckBz+hR8D/NwER/ifIkUFlgftDJkPM66mr9X4\n8j4Npfdg4iX1WBz177Fi0KJ33CwzWgimGtvY6cGSQAGAHvLWeuTN7+lMswo3\n5q9c2SDgenVXJ2lZZdLwNLp61a/Df+yisRORbOJorwN+o4KSgVl1whIO+TUF\nfs7aw+dbZgIawPH/CzACevCDUnkRhq4FDFAhxJxKysfSPzgtE83ksxCSPHvG\nYRdInjeBYFEmyx5KF9kMBQkEH2YC/Cy4YF2j6uJxCvBPfqSMg9RO9wzytv8/\nsxcg\r\n=awpg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"4f045c6a6ab3a8633075f8e66aa6d3a6832aba56","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.3","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.11_1587467897306_0.47516951025091303","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"gatsby-recipes","version":"0.0.12","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.12","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e43ac0719790d216e5c04f7e5418e70a05a66e38","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.12.tgz","fileCount":123,"integrity":"sha512-46SxuVAIZP3uC070m3TzAaC+HFFWe8Eoyplli5IuFG3Qh1t5cuv1D95F+f29qVdrgadStj9hkqI+rjJOSjNv8w==","signatures":[{"sig":"MEUCIHPLV2utq876CRiR2R3VGY/qIZP0si8F7vualyqGzY7AAiEA8FN0QtYIUcrT+rajR4hOelTyGzMFTVWFOvhdGvhat94=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":290624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen+mgCRA9TVsSAnZWagAAQaMP/Ru4+CcYmJcIN2M6CfUM\noDtAzin72ktdroa+r+kPU9ywrwj8mOu3knwfPxOAGknddCQcwljx9Oc/O2nX\n1KUrle7YLIoNAsn05AWq216JATcMblF/EnmFYmyXVY8n7Y3h96JXryWiDr7X\nRolCpzzh2wK/NxmrS6AW+b+BHR0CIgF5YMP7OnIGQ0WcIOWPYDj0M910CxIc\nSBoBBihDh7VEeh3thDH+2ayF6Zt/HE0v6L5XNR57MwMC7/0L5zIJHU6u23v+\nRfHqEBlMqm1WDYrBmff5qOxldgjvBIU1MQprnC82gHBrHh0bonv6WVb3Cmgh\nKfuGTkIAgZRT95bGbpavmMbzOhBCrJz2gPtVAo6mNQvFDs4hUg5G/CM+tA0Q\nLVzDG/sA1B668a6wHksec9ejzf5ONx8+XAlU1plfq6KLvPpgxScDbo2mZp6H\nsZu84hZ/tlfdPmse3OR6ZPT0nyvghg505rpG8Pe5UM6ZoUCdlDKPM+kdnVng\nbHrcojF27DlzAj3svfy81okAXeBEgfA6tEnDaZNcLyCNG/buRnKoQ+ZgCO+2\nTmIhzmv1GobAPLDaBuA3qw5hIgZvooTeoCUOTumSK2gth5KYQPk9nknRaTWk\ntSCPb2l+/8H+bPTWPWMhSpWGlqJRvVgNqtepztFyzpnZY7d8KV/rrC0IPznO\nlJAD\r\n=rVpc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"12eaaa0a6ff1e365a776f24ead7a8759cc97a926","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.19.0","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.4","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","babel-preset-gatsby-package":"^0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.12_1587538335874_0.24886901753328217","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"gatsby-recipes","version":"0.0.13","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.13","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d0c774e79438754d7cbc3887cc456bc73f81f43c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.13.tgz","fileCount":124,"integrity":"sha512-ycR+4L2i6tk8kL4OssNr09FjKc7pWIQ1uB6vTkOUhY2pZlWRg6X/506No7PiVod/s03xf5/Y864nuO3eWaIQrQ==","signatures":[{"sig":"MEUCIQDkgjz6qrLcx+Bwr/x3IooonPFP/m/0B0m7hUycPXlZUQIgXNTkKB+UUy9GGlkmyB/wcOSL0aHIKVCkNVUmthmXnas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":296777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoquFCRA9TVsSAnZWagAAUccP/i0PpuBxU6zArkp5KkEb\nUWP1cyO+uNGBOjJFej92WUamY2UOFUISpmoBl0QKFmhm8DDFzzuPl0BMsBIX\njYkjoO/60R+xuP2vYpwLOvCH9qhxmkKXP4CaBcX8mMN4FkTg8VNQwiIcpp3/\nL/WgxmucrS5g9rowOGLGeyGwVRxbZogYOBRRLCBdDMVDUcXMmSgi0XTm+WIh\nPMHEXKDd4GUftS0rG384R/fh15cug4nEX04qRT4n4fvNKT9ULTtPEQsernEQ\n1i5EHFahhxW6FnQ5a14uNF3t84lUyNYg1nkoPWZjju6Mw4tNfjw6vw1lQPKN\nnTwxNxg9XhjQoJqN+EsAqQ3wAeAn1Jc5dJ0MkvCveXNvxa3paQcMmxPA+9IR\nSVIFmviOXaX6JPu20wKR0zIBjMIg5FWG4zrggRBf1O5VvQL34+hh1TLGQjmy\npWpYd4CRXbgfldvjSmYLqywwKwUZVg8anCyNcdS/394ltBLHJo3/gbTE/NMG\nVNqtgElJbfYVH4qxV6qp30VHrlfhrQp9vCiqpyxEdjfzxoOmcMtDfigViIsf\nCO5+KzuqhioJOolYZMIBYC0dffR9jKp3X3wai8EnxP0KcDvMT883qYkmt7iZ\n+smsqQIYMxYYLYrTCas22tm9LsHEFzzl7tWE5JJmSyaqgzsArv7qQFA4bv/L\nG5U8\r\n=xC4j\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"35154266b55896fb6bf678d8b0ac61e8470dcbf5","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.19.0","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.5","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.13_1587719044367_0.9440587873833093","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"gatsby-recipes","version":"0.0.14","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.14","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"67287196356147e7ccf5c7dd8511660cf6a8bdac","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.14.tgz","fileCount":124,"integrity":"sha512-S758Xs8gWc6GiM5t0feAnb4bk6Tq9vPKmDIqmzIswWr4PWbcsBWzup3I0Taaq5tsoxiTLMKrwE2Rm0N47xT1Hw==","signatures":[{"sig":"MEYCIQC8cku+r+Xfh/t2O9QMbz/YLZRsbtjxyGNcOIyJIUZbHAIhALQHiY6C7lCdxwQUDVBqWx4ZD3gszALgMsm7rtuhG5I8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":314381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeosG+CRA9TVsSAnZWagAAeyYP+QCtlV7i7y+iUbiPW9cc\nBSaD51nS6ftcwUWupng9jl5cPVf2HxdviHoqtabynuhjYvxGpcyYcrj/2hTU\nC87DKt1O0gLzANZMPNT9UIdXirve1t5AlfXk+EnddRK6TCD9vlcpwMpVdBL7\nuuGVud8CBCEEfidwYo3ZWJfw424z+g/l1I9xZ9TSOH/PNn8d6hBXcQk5I6o9\nAxsTdh9R1NRKoCEhiVi0hYFYiAd9/ryt8wf7mGzuHIUPFtMoTTmDLCsfI9hD\nVhPtKxQz1DTBUoGp3y9z9ORHToPAyVSwmC8cBBrJWCg9aQ7VRGGFl6mf94/p\nsNGzUPwaFSd0FrDnM9xkGrQpoKvWPooVVvbjhYGCWM8Quqa8McdV6Plk3Ba0\nE1KGB+ZO6ErnYFmbuT3DirVM11gW8xKpCL4sL1DcMa/vIYXsrQ4PKltZ1Q6G\nRQ38dIVK1YJUjj5VyM+ZYnRMatmuZuNRIrPz1nq6imu5bPHy5Gk8Xsj70qm7\nopZMKAXSIvZQjlbQY2fb9QOciGyy74oJIlMa5s889cBMD/DkT+1csejmpRC4\no0XXVZwa65b9BWy2BfYfBCh/CNAj7eOuJLP3nKfeAwsnwafaV6otqgj70ueG\nYbLNjiEJzX5daQFBvqD/jNh4lwHkhxLxmlR39E5aK6C6GU87D2++W7LYedWg\nQ4Jb\r\n=YoYC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"912d4dd55a3e4a475122e59cff9ee7731c9e3542","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.15.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.15.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.5","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.14_1587724734237_0.5560503481671257","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"gatsby-recipes","version":"0.0.15","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.15","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"38325a3235d44cd38fcda47faf3cd6059fe23a8e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.15.tgz","fileCount":138,"integrity":"sha512-5uJYDZThFOZfVusT62gB36ZPWZFGmPvVD5sN1HJ/jC7Vg/mDOjX9IaE47GpNYIKhLpDU4vzcNHYJq0AHcXGzWQ==","signatures":[{"sig":"MEQCIEU1R6pqctIiPccJGSuw8qMmuxciqRrEGwTbbcdxDHdpAiBJTy0e7Ak18y6KDstYwhOeRaTzEZnen6dm88OuWL7DHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1418022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo0aFCRA9TVsSAnZWagAA4FwP/1rPsGA1dk+CNUoaoNdl\naThQjahPX1mszHeHSobTg12juGPMIsVrLeBzrD0MiZH+FNFwRHikWTXf8biE\nbFmcHQm+PNbnU9XVoeEXpJCY1pLffviyoNnv1LlUz1L92cdqIbs4xfL8/rRV\ncRkZc9w6YQ1R+B4F5TMtt8u+wSXB9dM0C/Oz9BeVmHVaAnTnKu9yPt3eADyw\ntJOvhvJr8gAVmaKmb2LkEG7IIMDgsw9UtVKF3AVkkcRm3uAtWQSC2KXyfR2m\n8rlT8iQ4SoklNgvzXSowVtCpTjz00k1mmHG4tfSjokA0w3sfMkDqLq6YHk6C\n+zcC6qKHX2LRLDA1pMq4LvqBHbTCUkcANzd08bNW0nceliPXZqGeSXO3jurS\ns2ELQxGZOO0ZGh/sSovSIaBMWcv/k1ENfQAZ6fjDTbP05xdqKRpCfNdJUXq1\nuORYaPfz1A+D1mQ93+DDa1W7Jb0ccT99irLBXQ5QLBQUhuT8zNMGHUVk2+jU\ni7taxBzD3tl5UxRHmxDLGhxWQ3AmdR7/mnLr0Qi2aAgYmZ5HpAFE74LprfqF\ngdS+hFcMlUPG7DVgHj1V3mjzwE7x2moCeN3Q2Wi1FUN2rKI/DVLff0Fj64Hm\nRU8NSFlD63TrWIJAFmilH3sKZ7c5/1ZjcqpPn0jDVOFKiqN8oN2P1iJb3PK3\n8POz\r\n=esan\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"c67221403d005b0e580868937476abdc7378d243","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.6","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.15_1587758724393_0.21650503176277547","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"gatsby-recipes","version":"0.0.16","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.16","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"498378f4c2a4d8c6795b305ebf62b30df5d2dc6b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.16.tgz","fileCount":138,"integrity":"sha512-H3/ytpYXY0TPAKVUuZerbKSDqVORw9/ovSYEbFlU8qiAcTRgdBQ36/+8aYQktbXkFcVin9MpQhuGNOPELiJC7Q==","signatures":[{"sig":"MEUCIFz3lhS/x1D2BE16s43A7uFEvXAtbmkNqdzCuMCLfTDzAiEAhVFKEpZopMgEAxLodxpoopJGHZXkhldyXFhEHUVRX1M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1419308,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo2FzCRA9TVsSAnZWagAAFn0P/RQf07lxob4T8YV4ae9B\n9DQH0e3X+H6tuoPT5McmcFegsmBIwY4VNIQmz+Icxiou3eNWwWtYTPLheObc\nDlPgZkBYGypjgquuxKb8oCUFzdcKl3KDcuZTq5tXzOijYy56doqnYg2Z4Nx6\naPqNurwGYsUO4As9Pu5bmYKTMh4jhPcsb6d3Pg91XZiFk4plchmR3KgcZ+0V\nfI/G32tEt8VnDusRvbmzJn5bAh7z9c3CeIeDDAOK6ex1J2lbPjR7rkXAT03k\nTnws9i3s6H96uE/+6QPuFI3kYms9pNI9jV1DT7qqxYE34KhiotifzQdxkf1J\nkdOP/CyTEyRB0rhTP+/yarAxqa3BqTAxgCvwkGELNlL/9q9AXIYoVO0BzmLK\nobofsUVG8ut/SdWgT1xG7GfymCmIJ1GlGQKa3ET32MzX4IpCiy8COaV4FtcW\nWW+xQ+gd19WdB8KNbGqZSWRAEZ/yFDdSpp5KVl+aYKY9bb63yukgzwDjLsMh\nTkibPXn6tcWkrTEf0v7DZleDiPBO4ZltmHj0uIOlzv+cXShu8ijVpNK/smCK\nXpYGQ5H3d+4bbakXrCuU7ooGrRSnSBhbjCnloVn3ZBPfZ6lOA6EUi8epEiSO\n8QNncYNZz4wX59Sq6vYZVDrLxPErLPagZvutufHQqOL1HNoo4b/8mc6LttQu\nbrli\r\n=OMQP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"383649de8157e243c611886b1bfa50a6456d5dd5","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.6","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.16_1587765618794_0.40611258335350175","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"gatsby-recipes","version":"0.0.17","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.17","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"85eeba731dd98c467c2b702e57c5b737e59d552f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.17.tgz","fileCount":139,"integrity":"sha512-K0cFyvDlQ5Lcu6SfhhezPXvYIfWv2IjGrKs4cj+Jc/PDMGR7ZlH5WmoC2InSIFIsiOF1RIMSQlHyWEEBPEDDbw==","signatures":[{"sig":"MEUCIFFJbZvA31w9wL6HQvXFqmMgaJ8e5thpDj2ktj31AsheAiEAqHQvk0Y8au3cjR8dNe6j77IQAxQ25Gbg6IjN0ULICyY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1420989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo6Q4CRA9TVsSAnZWagAA3ccQAJSUJhIiTcaOgWFOcb6I\niFlK8o2jBD7vtngKkGA+GwZDRhc6DS/5j+Uh58hwHbpDnKSsh4zmZQ3SRIPG\nar1ZfmCvjxamFGAWwt9JUW9NMW5scWUwIPfuyXUmODNHThhnKsta+bs/41f/\nxdjW1R6WsiIViSLgfq6n4Y+ZoZpY0lt8nl8C4EljD4iFrVhkX0AUu+3ODcBL\nleHihXLYTO2iDMW5Kt+JTHfL3u6Rox/yz2W4QowcBfvXguNqheYBrXuQQrp+\nMd8bao4emeO3bBHpASage9Dx+YRTBua6QwIsTfL7TCK4ASXJbrQuHQASiDs2\nVINHZjWeHgNcTVoMT9zbqnLSgoZGVuHM3WiMumpfrSFO9RLy9Ngn0yRHns3m\n51bJFjMe24uTKUfcl38xfxqP9+7O656Oo/2ws4FAhOsgQCvXHnU+qJk/Z4jX\nswrJYsXbrdUxuo2H4j6UCF/aBIT0IqtcjuRUUBmx25oFjbljmI5PyY24f10I\nyS66muuilhVaHlZqDmpP5C26X1hy2J2jUOOocfOqBbQgRhFvE1GUQLwLYqVX\nfd230nIKMghUrSzJG0I/N/+75/zA+SvP08I1oYongjX4ogOoKgbLcAJhrl+D\nLwHXoAUx8Vz28O9f6HSsYw2jeWRRYR6Fv732qj8pRpkGVcheFICbF1/RCaGq\nvW3E\r\n=xzVn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"558603d41f99c8c9a58b9f524de0f3cddb379b49","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.6","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.17_1587782711510_0.1956203420231255","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"gatsby-recipes","version":"0.0.18","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.18","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"58be424c789a8a0a8387c3b4818918009032ce26","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.18.tgz","fileCount":139,"integrity":"sha512-mxpZ22XP7an/RHPSbvslpCS/CVkGR4Rrojzh/f9r1UxlAS/Ba/GJ/1fAn9Pp+755aNIR9ditf1vRUBOML0G6+Q==","signatures":[{"sig":"MEUCIBcT4doNm/9wZP/Enjrmfz3WT9/a+SHcyeVVmyh1ko7/AiEAoMsXjJO+n32+eNTU/i2sqimcF6CPQyC8KkdxfnBtD7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1421299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo6ngCRA9TVsSAnZWagAATioQAIw2X+RXWAcu1N9vod2f\nZzszq093iGMkyZaMFSnWHI22CHtk4xF2sd9saAAHQdsc/1RFcq8ktoXJIaTs\nNR0jioFAuAKfT7JtuQW7RQUXeDK/sD4Znoe5OgN34tuLUZuqbVl9OJobQw0o\nkazutHYek7klM+my/TVD41pvNtccbh/AIlSMIB9CAWgYNuO8hx1UmF6Mmu/B\nFQToDP1BgtED2Z6RoPpYpix9e3jSvFAD+BujuNGgk+ZOXK0PRxpYUADd8HxO\ncau+5P3AELPe2y/yvVkaO31OURgzJzwwfWwgMVn413Z01Br8Ka4FUeD+ke05\nunxF8zcWzDckhxhnGKn0j8qOojJs5WPswEpPSjcNvohozYxEc8vi4+XVnFde\n8EtjA6u68Mm9fRKpBYBRbpziHxBRntr2ASNo9tXaXwyOkRZGD7CWxBQa6eYb\n3SFkQPcl4Z99/qANZ+9Usf9GxM+N59GoegIADNa5qvmSUNWEXiqJLAlrbqFP\ns4rgwGlylroqzuYZ+w+763kH5cPRXo8CJ4dc00eJPrG17vYef4wMATYe+eQc\nPUuI4UO9fRZaJ8R8q4hDB476oxsMWTS5r+K+IIGAYAFqw/KKVl/XD8Z/+czR\naPl50JmYqdoVs208c9f9YzCex2+EgxjbGybT4DjtzsTmxFu3ljfMOcDugyi8\nU6In\r\n=Whqk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"f314565b0d37bfcb48ddb39d0bcaa8a44f332b70","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.6","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.18_1587784159657_0.3264772477160982","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"gatsby-recipes","version":"0.0.19","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.19","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"65421ebeea6c37e6b6bd49545cca445c91a13de8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.19.tgz","fileCount":141,"integrity":"sha512-591V5j+jhP1CmgANiBwWsAWbKTsZ9t5Uor4hYtnbTfx2ZefIVTd65fgvE/ajioPbAQ14USd/Z3yplHQ8Ne9Hfw==","signatures":[{"sig":"MEYCIQCeAxPC6bQuGQfjv+na68sdLaMMVvgU7Pf2vucB9X54YAIhALwK76wy81p6JjtxggyMBBW5cy5lQBi7AxPL6zbxgMrF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepIgjCRA9TVsSAnZWagAAoaMP/Aga5OqFeeZ5rcyY1cxP\nrrZR5cJuhRnuZlJcPx3HyScDZATNePw2wlIgx6/YXq60cdIL2jHZ458hEeEY\nGMm/vYcLUJ3gs3q0qkuDpwDSqdsDSMgFvNRfdXRFnsKmq9Gzd8cAH+N4dEMl\nQgjv8BaCyTpJ5C2XqI5YHM665p9FT2MfW6rdZ1GoPbaSrzIvQvDM+AJVc9Kf\nU9eHXDkY6kmrYzNWxYJaqReHMJZZlS827Ec8+mb6eP2yxxx3UCYWAfq/x9tG\nxEwcJkO3Rju1MmErdRjBlfoEjDVp+CA2EclXXTS5mRZUzj+FusWvxnbyWQGk\nD5D6buAvEAmXLBkNgvUf4X6gUDVyXte6noZS6dNlQyVZdNPmHA1BObMFFwYy\nD3yg1jVEjfIss0kAZ+DdKzS/IZ8xD2Mlt9XavnFPXgYvSg5Rqb943K4tXJlF\n9tzvrWQQDX0m7bvK+QRKGTFWYLTm99PJ2Y1FjbEe+bdj3tDUtMqElVgaTQ0f\nstfRj7Kcq6Q3muK9tj7uQWTGljZ7SAENNbj7u7IwMaMAG40dmG2qkrGDfy4H\nrB/r79FabsdaiEoYYS0ZJgBQwPwVSw22wmmclTKxJs2OwxOfAvEHP6F1CY4V\nVDktf9StP7rccOGGtcnfVlKjJAc62La5h+79i3ppVneDpneuEgdFMpQhlSBx\n4TKV\r\n=FGgt\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"1e59c65ed5117eba8f7fdc2f31d379c92383e474","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.3","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.5","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.8.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.0.0","is-blank":"^2.1.0","prettier":"^2.0.4","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.3.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.8.7","@mdx-js/mdx":"^1.5.8","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.0.6","@mdx-js/react":"^1.5.8","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.8","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.2.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.1.4","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.3.6","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.0","babel-plugin-remove-graphql-queries":"^2.8.5"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.3.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.19_1587841058923_0.9927650057138633","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"gatsby-recipes","version":"0.1.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.0","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"657de2778204e71c720f49bd7166818345f5e1f3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.0.tgz","fileCount":140,"integrity":"sha512-HKg9q+/Pgaw4KxTXwksZds2qjyv25IbzXABMNwtFD8V4Nh/l0szYKwJxZcptfyp2ftMv1WnK9cjF5CT1HjpwDw==","signatures":[{"sig":"MEYCIQDxR7oYfg5j6LyksgnyK2We9UPHambIudQq/CwXT5lZgAIhAIyyX5/swOj11VAE0suopB6CJYUrtRsu5yMTx4aDHFHg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1424149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepsusCRA9TVsSAnZWagAA9wYP/1PLwhZ+xPLT+icnozxI\nSvEbLZV6vvldeMzBTKIDBMq/doUKDwrvFiFOIYC+Mlm0daY5PnkfbvWOxFQZ\nbD4OjYdCs4HfqYXPDQKNTzyidiCgax+leHL1NkOJFXQ4MFGGetk+imILP13G\nd5bp+weea/34qbg8CN/WapEcBDJ8yDNW7AJOp38XUwUOUsS2kzg7H8iseNTx\n6UEIfVV68TdMtUkmORNQMuSeYYaurDHS90fdXrGxAmS5TbRK3kWjmfHdvG9U\n7MYijvvedwHNsXwkW5L+qHQMT0b+YNSx66OxoJHozXyDrM+nkiHe0Xk8FOks\nezlZ1NMi/vINjOSS7svm1AZ6VygJpymIMWoLSEwIWUPBC0SwOAH1vygQJJ42\n1h+ppIPPg5CBC/tZRrk3OnVY+hUJkgP1AyFoegqtS6grcx6tFIY4xMFN+yeL\nMUP1yt2FWDk/iQ2VMe/x9cM/L5eIfbeFDVLEC7XPTELT2BKw2bIW4TGOG2RA\nWLwkOgISV2zm3oLWjka4ALSmaRspAk1TpTr10RSOaSLClX7YzVkn/nGQFJnS\nDcE6wt4yKbFxyNybvYy6D+qubzIbA0BHilBC8bs/BX+0z9BOl+qKHsjfGl2M\nxnfsebs0ePmLIGU1aqxIIF6YcNrOIgt9khgyFblcjQyI8lDCwiHHefHVqpOe\neZFH\r\n=4CxG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"fb92ede949f67c16a247ea5b0bc96934f0534dd2","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.3.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.3.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.5.9","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.5.9","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.5.9","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.0_1587989420472_0.7511290995365352","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"gatsby-recipes","version":"0.1.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.1","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"337130a829df700e435ba0b9d3d470bd15ed4702","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.1.tgz","fileCount":141,"integrity":"sha512-c84NqjeTo2vAPPmokSkQ0eyj1+Vp8MXRtoHntCnTog/RE2HmM1SoIU8IWy6+O14Nr2i8MbagEjve4KklQ3/tVw==","signatures":[{"sig":"MEUCICU+LzYr4Pt2sFpFmuj7K9n/W0G1pNSrKfbrNauKDvHUAiEAmcLSMJHormnF+F+akZ34moMywBBCOK5RNun98oPNbMA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1426019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqAbHCRA9TVsSAnZWagAAcUEP/0syTWW2PHdxlKDqrKdT\n9/PUIHcZYVg9z5FSicR9YLFn4rCgldUGpqtqiU2NcDw3pkaOAwrG045QfLIL\nEVp5M1i8bDbSn+7UsPSeUwPjpc014HjTW3jNY/2IyHj+uRazRkEZr5gR+GAX\n2OTsF8zEGvuFJUBxPUnjWoWH0a6ojQ0S1tygufUtlxVq/xhPBQ9gkJBFXw9I\niQPWq4zFByVVvf5349YWJ3lRZBo994wrExmbNSDknwZbldAGM53DMk9C9xXC\nsu3bzmT5utm0Hipn1lFrzBj8OVnqC1HpnRDH+XnaJZKbevq9ABoAbmOF4W18\nwDxT2cNIVgz6Yxt/XHtCImf/QkPUQD4yFieaDbKVYW6gvh430fmexCl++1tk\nNB9XJghB7mnMv8Xxg8WEd08uxj8YWIly2ryBTdndHvcz1iBHr6GpkXOB9m6l\nbAMebIX2FvKWX5BkGQctzg8c8LvwDQX+Qst2MwHFcy+eKFhNVcKt3mDmbcNA\n3WN7YrEu8OfhWjiG5KW4rtuLfN9ile5sUO1ZJfI/R/41C3PuExmjWBu/4dRu\nLBXApmAxm9nrjLNnrgx7QBk2cvwlaby2MQ9mSARfQKSB410RP6h9csaeYcr3\nOcptt3v1ymmOcTjRKWdrX2TQFjI8PivjkCmOLUtDNghvGs3q/QMm6rc0kPFt\nWn0J\r\n=5bQ7\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"b69f7b39bb135c6b6d5caf8295b045ce278eb45b","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.3.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.3.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.1_1588070086531_0.18722266314019276","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"gatsby-recipes","version":"0.1.4","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.4","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f2b49cacdfc9615ff2b77d006c1bae80f4755b1a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.4.tgz","fileCount":143,"integrity":"sha512-JJBvLigkgMqAV3BFK83P7MkNlAKwkY+JH7VJxMxKzSZMxAuJnsPQlYTgZICwS8o6gWLDf8KbbV52Sbfi59DIgw==","signatures":[{"sig":"MEUCIQCgIcr29pyNYTAtJIMym9H1UcKRUDrAvfMnBhzDfrJNbgIgEtD2U5J2FIh252Jy49AyOMAKtBgF9eN6+Fkw9ruzmUY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1430522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqZeICRA9TVsSAnZWagAAMo4P/1psqxfNJLArn4Dys81l\nMn//24Wb90BI4pvzFHjIltjBSOdfw8EthICXQy+SD4M8YNewlGOI8sdbvbF7\nkg1M7h8xWmmLRB4p3R5pk6wNyG1ZfNE9JoWzNqbZlFxl7bW78daLJ9dXXiik\nszmYBB2yXkviIc6cyAx79XjSPyfUp0qCthA0pzzhLqpeGMjZlIUu4G6iJguo\n8C8icZyX0ndMz4E+5w7LxvrE7Denpa3SrsQZyafh4MY7oR1mI+jSXP0Ebjre\nLVYXWqhdZ6FXpFjGmFvM/i1bMSz8OvJSmDwWeCCK+SvjSgWWOSgWEEGyFNiz\ngEtLolQ9dFSR/gpAwufG3AdnVgeO0AQcOlDEjaD/O9Uy8SmRhwHhgtwE+3oB\nqW/rNmd/MmjcMAoDme647HGj9NEiZwaxLebC6GS3bWF1HWzn9wX0QcPsNpZH\n/DXaCfLRAYkfkk1Q51rzf6U4L+R8R39dbEQohNTuclbTylYFhdG1cja78n/m\nNyKU9qOadtJJQ3EjJsHQLsbW/7g/l3KDpqPWvlIkZZao8ovSveXVfjceZwxd\nlz9Har+i6YcG3YwG2KivOJbCYrze5jh1PlptioDeIXd3aWsqLBExY0vkFBGD\nQcgyTq/VDdXeSCdYozPJWTgnyio/sUVt1sxUptGA9INCmyoY/VaIWvg1CONL\n+7lb\r\n=x6MO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"11d010f70886a5bb142214d5d1d7db677dcadd2a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.4_1588172679959_0.9060975855285025","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"gatsby-recipes","version":"0.1.5","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.5","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8adac21801cf031b8d64434dc10a0bbf2bdc391e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.5.tgz","fileCount":143,"integrity":"sha512-0qtxnLZxd3BT9PkxpdKcz/pawSAdWbIZCWYoBj7VbdPSsvOpQ7Wwqz/HP7Krn/3VrnTcFoCnNdculQjUhN+IDg==","signatures":[{"sig":"MEQCIE1lgdTqLHwsmmERWOfmvUzOZFVYjKwWYMkaFsactX0JAiBhNYrRWn/Ijeizv/6WpWd4ZBT7r3CrRO054JdOySVgIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1431033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqZ+QCRA9TVsSAnZWagAAXVkP/RIw0tXKMALPcFqb3bgQ\nJgiykFzu1qXU3T+7QXkaPSgtj0w9C50T0Hz+F97b9EYUUHrP+TSM+xriE2b8\n7Fa/lQvDXT83bYq4FR5XGKYmxkvXc1wNMWgQl/xYRBWRX/nUszst6ba979km\naKbiaT3VATfIa4ew/kQTLcYCdSvb1O0bueCN/EmELYc4FRbx9E29il4lybuS\nM5oLyWWLN5cTWZ2ikmQqYaK8YrQ+BzflOFKRwK+jbzxYsxghHNd+vUCrfpyY\nv0Sr9w25bmIfpz/GIQwM8JFHggX1EZAO7YebFh15f3ASVErfbWYpRXNAVCqX\njkXAuAxIS/qeITCpimPqzvj+/WH7pB6mUDX5rHepX9WbVn38JKb7noDHyVsk\nQ9L+vwSjxE6gT7hyRTHJBNtG/dvoOjJSajbavCoHLYUF8BtEj9Ak8q31WdRM\nXS2ixew09qBAZ6pD7ZA9VOoJ9N9Tonupw0ZiAdSgiIMV2OgeiE/RIH902YFu\nkrcUAqqJ412Mz8zFoUBqZKNEqSxAe/78CdtoN00udZTmT4QZYGp83saWEnbI\nUbHiSHZQKWceCA1zQW1gGOpC0LNsHM2dOpMdV6qjeXGAbhgcqUw54QZBi0PW\nyjqfX8U4tRxOgC5CCGqs0FTV9ZTSPDUbMyb6h1oRqsh6flW4rKRgHx+ln9ZU\nEQzH\r\n=o3ma\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"b24d80249f6c6aeab8fc8bd9c6265dd8d1933230","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.5_1588174735788_0.9066213656695561","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"gatsby-recipes","version":"0.1.6","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.6","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2038a1ec923076046d413f4e114c3ecb349e4b2a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.6.tgz","fileCount":143,"integrity":"sha512-/ViZfWApGTtBFEZgeeRYjwo3lvv0k2UWbzQyeTM77MQJJ7fWGvJjpZ8m7zs/gGi6Q/E7mB4cRPkC9iLhZne5SQ==","signatures":[{"sig":"MEYCIQDBQVli6F7ginp7XaMr0Mk/wu3OO9eWU6QODKOD9gvBoQIhALa9FpBe5hxG/8VEEmnuSoUbSN8hCOFgRDe2G/G3wA74","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1433278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqcXqCRA9TVsSAnZWagAAhakP/2coD7t4qtoyzcLIOHki\nw8X3u8KhyX/QN/ISHc+jW6BDqnxrrvKkS+Mdyj+iUV1buQvalBPx7eEEVe6n\nsu37Kw+UeW6QTqFWQ+aFeH32Ri99q7PbicJWTUL71whPd3dsa4vgH3KY6zir\n2e7+0crJ4ctQffaAWQdDYQecuQIMFYzeiIYdMibmmM56akXtQo8Dj+T0dDxd\noXn0rwtlUDK1yNsSV2jwYE/CwfyFK14S6piDgEEzQTY2jOSsYDU6Jv4xljFB\nelADU2WyO9OEyZ/VuzesIQNauF745rTOQMNd0N76sUIB+A5FhcWXlMU8PPiP\n77IdwQv/LJ9NLXqqMGa6csdoi28KDhZAiivZ2L4/lIxZ68gFVKppmjSBF8NO\npHejVGyqLpYsD9OPhbgaPrHr1LJB9XEd535pga+NUvefQ1e9k5iGjOFAx0vB\nytJ0lMKcnoHJWZgDaYLcurqDuzdRwsMd8Okm48XrUNG5jjkQ3IO0AbK/sus/\n2LY8+K0sPbvhdNkSZB7eKupckVOyLKt9FLNmztRCWIeNwrYx6VBJA6h2Ges0\nyMSQ0i5CbDLCH1Y9u63Oxyr5KDjNq6k7ycItqpnmyO+sxyPY/FxGS8qguu66\nAkGFuok0tutdZ5uECvaa8h9Tk3n7aoJaRy2IlJHFfr5UrLSO2LjhfrgP39vp\neQNW\r\n=XDn5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"05151c006974b7636b00f0cd608fac89ddaa1c08","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.6_1588184553981_0.7084319163082344","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"gatsby-recipes","version":"0.1.7","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.7","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"de8e628b7cd38002430e804086c80241a05a7e4c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.7.tgz","fileCount":141,"integrity":"sha512-i39CbFmJZ11xanFyz+DhbDqS4/Hz7Aj3hEHUoQ5zF9o5BtH1yRjFvlwZ5+7sN/BAQ6IM8RsUo4yt4LAEVbOVrw==","signatures":[{"sig":"MEQCIFuZqnOoD0fe0ZZz6Ih5XKPFnQoEiCzmiY4O4L2pDPEwAiASw1Ssehmi3JOTWTo2aD+GPMJWbo2A/RUAW99+bwiMog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":353284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerA+tCRA9TVsSAnZWagAAYjIP/0c87yAwJgSU/2B7veim\nDwLMkX4fZ8GJcIYXBhIe+/jpKtUzzVNfwzcq3tGDaJmCFk35EVWV8h3pjnPb\naLj3v33E57Yl18OkZ1sqwymKkjkY5HMQqStYhrGSJP3J3ZmUlV9HUazpzLKY\nuKtA2DuIYJ5GRvDrJ4lDRS5KEH99aTgdrjqv5xeOShDRSvA7DRVJGIfWzmcP\nm3iYDmZR4dCLwiaQEmVoIfgWQ/tG9MwYNzTpt74j1yNW5eWA/dW8zgw5unle\nQ44ySRKgg8mtd1GzQu8hsJ8eHbPS+1Sri0glBSrsWvXPrZ4wcarrJH4h/TsJ\nIDWGDGBBK7LjmkCV7EyBVHWMzPHTKBfSaZL09i3inkcuj80ZFMC8TflqRN0I\nK6wI1kUMe3D14Gt2OrwM/xrvrx7CSnoONOkd7dMdh+sMK/8V3lNMQQPf4rlO\ng5gZJmzp8YB2TxZpeVNZQn+PxwiPWExH9AS/9MUQwNRKIuPuVAXUQjHmUZEf\nA9uxv08KX0htXACzyo14emTI689DXhmjfttMLJpis1yZ2e5qHTN7PlPXaGml\n81Q+m++n+vZbTmuvrZBpy13hjx5joQkgSy/SxVPJLa+jZMGJdD7zA2VaYLB/\ny/1avNQgPuIqC5sXXAFIeCrQAR/PljATXtwVH1GzEquHhtvdqcYkv9q1kh6F\nO9RB\r\n=zDOj\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"5cbe06ea0793552f4292436a078e53fd228412e3","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.1","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.7_1588334509292_0.6790270249698935","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"gatsby-recipes","version":"0.1.8","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.8","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cf49937118b8b48ea71df8ed1846c243c0201315","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.8.tgz","fileCount":143,"integrity":"sha512-tpt7mzAWxyOAHxNQRh0ocrDjiRTqYNuzTBUCT24np9FFFpJO+5JMuhESC8W6BI+UyrCiYwwAu8TGfhWGCbDyOQ==","signatures":[{"sig":"MEUCIQCng/0kLmL/x2UjmeyE+NYZgNeASQnEYZ2GTiKkDsEmAQIgK4cKf8f8vlylBdsGRsi4zQtfWwK37YQG2B6j9ts89tA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1436313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerEL2CRA9TVsSAnZWagAAGJ8QAJ49UUMgz/UsWl3bwjau\nzxd7voM8efec7zc2OK7L7ECQVE7Czn8/hC74/uWLsucu/lEri6KkrEA3jpWW\n/9QpCezR4LaJwNv1oAuvZYAkN6f1H/J7q+Wi58nlKdBI5COk1tiM7QaOyhZv\nesrcQfCISR3ICq3UCy3iLJafVbOnf97bkJJj8CQnTcfZUFVq6XR5vXNXhQIi\nAnirC4D0CpDfaP87WmYsrw2Ydk73SQah7qtXAVyvC5lNb+hP1nI+F7wXrT39\ne7VQOiIQfxixWEv5JcYtWHwdt4UOT/UL/RDHYSxux8vqGEKY3+Ej3GMSlBiI\nljPXdY9ZIjzCNlefdhoH1GIXpd4t2oY3DcRP5jHUie2kXWoYPm3OQvgatluX\nmXxPdIm/28yIHSQLQjvu2ItQBZj5cm0v6Ula/N8K4/yWKlOCxCJJt9ZnFFhJ\nUnQs5LtASHxSCvZmL5CzAeJIEo6irxPlRL0R+M3MS7SjemO2a+8RnzFLhnYs\nIpQ+oMbDHMwHLx0XDggpzedm6VANSAV1Wm3eH0DdDFsevlcT42XZvU2wWUdo\njn4Fl5KK8F1HXYB77vVz2Lo7ntus0EH8LAOJQqQxTkMRVm5KeAJjdIIgPMOe\nOwq8q42/PgJTkyWqaCynHUIWrPgyrCmRBYUvbBOgg+YMTrG3aPoZ6iB1u5qP\nwQNC\r\n=9CaS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"fe8f96aa1a4c7e742b2027781fccef9363a40014","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.1","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.8_1588347637616_0.9433119654889421","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"gatsby-recipes","version":"0.1.9","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.9","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"fb6be9f7ab1116413042c72f42882a674e5e4b49","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.9.tgz","fileCount":142,"integrity":"sha512-dO7VNa8QfvIMqBQtMF4Io2dvtxBk6HNCrJvG33VOeo7E4GijVVOMYif0ZZq/YpYoBMOJTApuntXVMs8SO9/lJQ==","signatures":[{"sig":"MEUCIQD2VAHvGTd0F9JHgJSGkXqL5jf/FWMXH4sEYBbuaeMs8wIgCLEOcA/XeLpZw7QR2InGHhzy7q6+cNz5VXBiK/JZCGg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":354878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer8GZCRA9TVsSAnZWagAAasgP/RUCOpi86ihwYnz+fdlI\nfHkFtveUkoO7O+rB8qGy4TSIYTG3+5S2o/t3Rcmhs6rBbxx30BxLupgh2jng\nqD/q6mmsbJ68awx69eUJ9bxheZ7YsxOEbrq2rBuak77UJXV4S9STnHoWrhet\njzt6v/AoPfuXl3ebyIkART352kgBm49jx40OvRsTD4zXBwLORYbt0kvHOrsj\nWZuRPtbWdE9X2IhbAjtD1h+b65+8bsRQ/JoVItLnDpSnSq0WbkoP+ssU6uBh\nSf8Y9HQ/EuXWUB5wZzzoR7kixBzCcevvQmC1WywlX8GyTkfOC8HEEDm50Clk\neoGrLYwLN4t+jSrJ72WdJyhkB+SBsB8Wj75GJquvdajhlkzPiGlIbo5JnJJc\noQbAuhm8h7sdQOEuov/fvgA/WRct8dS87DzuyjfofNRIIvCXi7eouTi5ckqy\nvB2Co3Y+UaniS8extsHVoo+PS3/r0/FYLd8UufMYSDOE/Tw31cVwBSZYA3Ox\ndOYby6e0BdhO1Yh9WUJ+LJW6oE0PjKXg8qnXeZQGCJZkNS67Kac+hIdLcL32\ng8iuU0orqbZrz8vMRyH875ey/fAvIjG6JwUXRsCYV9q0Qjp/oHpeGsvDQe7F\npwcqbuinPFimH6DT4wookhH0Q6CUjOog2FzXyV0qFMKuIJi6+J0aVd0+C/TM\nydz+\r\n=zgBd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"527bfdd10dab5b7cf5666034745b35d4cfedf63d","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.15.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.15.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"^1.3.1","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"^1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.9_1588576665310_0.24809606402083428","host":"s3://npm-registry-packages"}},"0.1.10-state-machine.15022":{"name":"gatsby-recipes","version":"0.1.10-state-machine.15022","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.10-state-machine.15022","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3b34ff78aa01583f0e3b66068c002e86a5a0cfef","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.10-state-machine.15022.tgz","fileCount":142,"integrity":"sha512-SwyjnWmnhDo12V9EiBYUhYByDrtj1esNYd7MefXUgMi8Fm5N7XdRbsI7Y9p7Nh7d00ZHclMZ3dnZloRg0u37Jg==","signatures":[{"sig":"MEUCIEKgnuUznxMuw2kTqebaf3bHBqZzxiAn7xKIWkemvxYqAiEA/dvzCcthNKimo/IPhyU29mdNPcMXMyDLEI6oOA0atNw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":355805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer9asCRA9TVsSAnZWagAAWjIQAKT8Z5hnmMl0ieHU85iB\nka0Jnzbc9Npvv3YAtk50xEyZFMF+F65fSdqh56TI6uNhm+OZRDB1FR777q/q\nZzeDXjgBzTiLSdsPGDf1JxR+bx/8HZiM+mF+Md8RgikIXXmhLbLYtBdkTT08\nMSiEhtkx17+CaxzTuf8NmGYOXMR7Vy77C28TpUXLmUFrB7EWKexm0/YFER9H\nZmL/e7btC0CHlZWfcyJUp+rpHE8AiIP9PUE0dUvKC1PXM941GOrZdWVMsjqD\nLvb+wc54zCk8S2AQ2s0oqMElKMGO1gNlp87m/+mnEWxSY29+CQfNa5+4mTKc\nKRl9I9UHE3g4InKfSgpCOULHl+OnFYslbz+LLOZrEtaC2ZUhuDzRYK9aj0LY\nQpb9HCIg9hJlBdmKfjPi6UA281f3kGnGD1FeYho/uvHlw5TjzBDl0MsSRCq3\nhvng/0CzRfWwgz4O3gKlBSM46DE7duQPhjd7sGwEXJeTXO07NnlFnZ2HOz2y\n4nq0QUItpvvCWmBXo2YdE7oyvtuwXHEhEsYpATSAatbtW5XAqAv9N0mzE4ZU\nz3OlMoabBhgeNwrrGBDrwSrYL9Jj59EBaoStVXIyVNy82wnFDVkeqcHS+1YP\nXUe1/sr8rmBaweJPBcPs6BifnkBabzvWbv931gJJ6jATebUWUy3n/Tg86loU\nRp2H\r\n=EiAz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like `gatsby recipes ./my-cool-recipe.mdx`\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n````shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name=\"src pages directory\"\n    path=\"src/pages\"\n  }}\n/>\n````\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n`<NPMPackage name=\"lodash\" version=\"latest\" />`\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n`<NPMScript name=\"test\" command=\"jest\" />`\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n<File path=\"test.md\" content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\" />\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```bash\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5b627c16849b967e1895031ae69c1e154a498bb8","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.4.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.0","@mdx-js/mdx":"^1.6.0","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.5","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.0","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.0","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.5","gatsby-telemetry":"1.1.57-state-machine.126+5b627c168","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.5","gatsby-core-utils":"1.2.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.4.0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.0.2","babel-preset-gatsby-package":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.10-state-machine.15022_1588582060119_0.7449709036446848","host":"s3://npm-registry-packages"}},"0.1.10":{"name":"gatsby-recipes","version":"0.1.10","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.10","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5b8c48a924be9befd890e6cf3ed5dd1d16d6e09b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.10.tgz","fileCount":142,"integrity":"sha512-+UM9zYMvlYFbnfm8QF5Woqdv68SL4EROlG+FTUnS4PxHs30SR5UZ8BP8lIdcYDnhy+DYYJdCvXDHxPzr5lJ0Jg==","signatures":[{"sig":"MEYCIQDjWKUXh0KN1ynmA/VaLF1fT8SdWM50iXqycOCq8S+ijgIhAIuzgfDEeidmUhiWn7FcQYKBaOBSKXzm49LTyUkFh94g","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":355050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesTVmCRA9TVsSAnZWagAAlHkP/1eKLtIIQ+h+qqAw6dHD\nK/mlMtdvgQDTbu92jqgTxwVp6h4Ik6tvGr9W00guqriD2NQXC4Uzh22mfdIZ\necSeGgWvBWPYB9z5bGS6Fc7Q7XXz6jHsrwMN0Q0KhVFOEKnvJh7hM8Xkpbwg\nx1z2as6LislVzLZ8xwOVKvYjySKs8xZL6jUfO95kwBd75k3Yp3W92oRCw6TV\n7VYZZ5TMdKh7vfWTdnB9HrIm8ueZcMEf/npipH/RG8Dx0Hq2sDvitangN23Z\nsFAnZ4KfM/+SjB39dWrh7a/OfPtisxLVrusX6HzrnJdMoEEdMddZrKhxdgXN\nmsriLia+lZgFeTOqflZUQUgmnIjLnfGmH4nWh7zCe34+xX3KRRDj8OEFV5qB\nGMd0sz2Q5mjaSp7woHEbzxFBcnUgd2vicDCO9o+EpnR/Bf4wfNiEsT7SG/fL\nYHu0FDCi1tS/TbIrqr0gwQ0Gp3x/OYvj89FGI731RaSzwrFsfMRfPDPeHGTZ\nhLI2GKA7/+IvZlL8C5rYWextA1p/ePXlshNVMJSRcGOmvApV1OHKCUSyPugr\nrW6kdg4+EC0LHWFSeMF4W53LFPvulTKNv+StEgrcbOGqkiO0vYC/ysJo/htc\n2GDFABq2p+O1b56NGUemwiW3iOt2NULnYdNKKt3E9dxWUybvpf37G6xOX2+B\n/Sqo\r\n=kr5v\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"96a8f2adaaeaf6551381a8abed549d65ed30b592","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.2","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.10_1588671846253_0.5482315880931679","host":"s3://npm-registry-packages"}},"0.1.11":{"name":"gatsby-recipes","version":"0.1.11","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.11","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b7676e2cf4fad9570a0a01f5f808439deccd7761","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.11.tgz","fileCount":142,"integrity":"sha512-Ce/ttLMshGRLb/ull7s3VVn2FwByj0OKHEeBMKj8nYMhu+ZcLIcsSE97pBeSLd4xZRQ+pFIQ5epY7K3jV7IgdA==","signatures":[{"sig":"MEYCIQC1hGjK4PM3b1RxH0U1kxaGlXXxkWRdfkgblaIxk4/q5wIhALcn7H5Avnn6c/WrGAxFGib4rd0SjdXFuOSkpg2Ma4OL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":359715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesoR7CRA9TVsSAnZWagAA7TwP/3P10CH9Jbd4BlOcHxYv\nFrbubFmmHP3UMNznAlvhPnzJIkljXQq0AY1w5nWqadsLS1faO6J0sZSgzVAP\nGk2z0KtjNk/Fhv8bpOiRlDI5bKIsQhKJ9ugVxpYWPlTEFpzrR8UX8cUx5AJV\nqc9bZ6RMwB9m8BvP8zkA1IYug8gfInnl3R4DW84O1eNXuwyt3cNSJ7T+apBF\nk6dq6zh6jgke+SsXhZ3aCI6A3pmU3BTaKweCq4t7HKLFw1KdBVXSjQZ8EFiR\nMZwvk4fLGHorUBWODL1JSauEvpjDlcPSGh4uIhF+xVRNNas2llOdIxlFa8bp\nuMEnmnBzTvHSwWiyRYGxFWkvRFSrPbzwiQ1NGYc7wmEy4LIGtaM24cIQK0mY\nkEh3wzOPX7FNLUyU0oOi5+x3sspQHagzHasIVUoZe0FGfdHpiFHUj+/Ug87n\n9nipBMDWxHxLZu82Gm5stP4gCqhEucX4bT84DSoNXCnj8JvikzBf/mDXyUc3\n7Kki8WER4l9Oquvj2scZfpAiLi6iNtopWSECQu0mkA7MYJ19xId6jKSOSfKr\nHLkKWSjzBw0HBrKb8LuCgK5EpqBB/9W8INfnkCh7zEz7aMNLDP+GBj9JhPgn\n38hde+CS0gDj2D/H/hXheONqyK88U5YCmYU3WrYazsFyDhRlPF1kvirdwbX6\nLrwh\r\n=Z2+R\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"101bd76c3f5831b8030333dec7ad08d090d2732d","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.15.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.15.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.2","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.11_1588757627378_0.7752341494012334","host":"s3://npm-registry-packages"}},"0.1.12-state-machine.15106":{"name":"gatsby-recipes","version":"0.1.12-state-machine.15106","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.12-state-machine.15106","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0cab3d7b14dd0aa917e1c0fff846c6745c53b890","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.12-state-machine.15106.tgz","fileCount":142,"integrity":"sha512-e5xgDuCpyD5l1byfQGYnAzJ7AKRH/TbN4sKnxdJyI+vxSwLIB0HsAVkv5FqhI4Z81sR9BWzDzs2T/mbMB7sEuw==","signatures":[{"sig":"MEQCICHx9n5uRsHFvnSsGJDYByD+yKe+OTSGDAyp4jE/sQIHAiBoljyPDyb0RbLHpMj8EhSbR9zTArQtEQCJIoxa4zElew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":359214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesu0wCRA9TVsSAnZWagAAyYEQAJnTCej1UuuLDTAx+i3L\n70eCRK+Y/jCfiG63Jv2Spt60GGPc6TqiGSxGUMzraoNWEp1C1vaqU3F7em2X\njJMdsi/1lLU62P4PTtNoa0mydfl2sP9JJvUXqME5uTv0RSNsSDPFwpcxqXVI\nma304LrJa+EVHjc5IKVSCbuElnG1m11o3tj3OEAYzC2x46Zn4dxcr8uxIbu2\n+ORTSAMe1M+ropBoqwnFKgSvIwl7cdvlDD3V6A1C2U/XXlctuefUhes8Yqo2\n2pirR6Dfe9YyIYjmzP0IOPhmnO6VXdc83JCJaFP+uMhqxTigzzKk0h+4oz/0\n4tBww41Vg/DHQWrUFUJ3y9wP30HV3jDKx5+HTERNLwMx4tiB/4EMu4a5DlvF\n1EnJvd0s8kWqvKWEdVGR1VsBHuFQvpGZbSedaYLx/mXKcRJNs6Qjkz8+O8v5\nwbyzGLFTwnKpplFihks/xyD+yx7Ob/zXyls5RO5MP0JtfJaR79gYvoBZ2MvS\nbWTEyRoc4yxC+BXdlAg4bW1cDa6SMhgengYwqUXKmah7vPHMRspWBpEmd3Y0\nl6Jk01LxufuVbggJBewZTtKMN1r9AcfGYlZpOPw/3E9u0hDVU1jkOur7b4mx\ntpzSmH3xcKUi0Fg917R/+UfGUqlUq2i3eVbWKKfFxAJVrDscgLG8C7auPx4m\n/ZGV\r\n=hG7W\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like `gatsby recipes ./my-cool-recipe.mdx`\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n````shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name=\"src pages directory\"\n    path=\"src/pages\"\n  }}\n/>\n````\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n`<NPMPackage name=\"lodash\" version=\"latest\" />`\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n`<NPMScript name=\"test\" command=\"jest\" />`\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n<File path=\"test.md\" content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\" />\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```bash\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"48aaa9da3ad4a126b9a0c1e69d279f34cf1c60ce","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"1.3.2","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.12-state-machine.15106_1588784432490_0.86474118844729","host":"s3://npm-registry-packages"}},"0.1.12":{"name":"gatsby-recipes","version":"0.1.12","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.12","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b3041c893781fef21d460db2c8a787d9d929d8ef","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.12.tgz","fileCount":145,"integrity":"sha512-QMmxOB6oXarZ7l4/p3h0AninCe/rmSsqG2uZOt+K2o+IERBGMIPD/6s8y9sljiXptx3QL2c+K8zK7IVXbHQMJg==","signatures":[{"sig":"MEQCIA1D11VGMSyEkcr7T+SayX/avqPIgInOmdAjwIXrSikAAiBUwNyEjmoDfJprzliRLLiQ3HI3c4a8nAZENGfOCMv+HA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1444309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetERkCRA9TVsSAnZWagAAFU8P/jFIoGZzJxue2Jl6i8cX\nosltnF883RvpjfEJQzcgYbXdfVVxSp+UapQeFdgesioyFCstK9hMNvuHYOv9\nCkL8plTQ9pTDWpKzxfxr6Ef5aQ3m4Eeasrya0JLUdetLZ7L+r3kMVg8HGej1\nAWzkqO57KyjGRk2i5sahwbuUONwx5Cvzq2PUNFgjTPKbcH9Nwb7brQQGwZ4i\nrQ/setKVzaPfVtH1HFFuXLKRhJp5L9mLzdb2iRHPOx0vmypAAHTvYBkQRcw8\nK8sDTI38IfhyockqmBssAm6kh50NFARr/WxR7XtF1p+bZbtc8u97y5RukpdQ\nEl03YxC20pukej2bg/9uasg0Yacr3hf0syz+JsTN1kVgXLMZJJP3QtmPfiT/\nRnDwocEr2vVef3lcXsJ17KJ22UB3lFZVEjQqxFCutGg8edEh4xomtU/KZwcX\n5cHBzlRFoaNfsquAideLV2U/R2zWobWw/Ndy8qtq5ukH6bn7YSPZ4vanTN6r\nETrnuKoh7RQtUTyjbcCRorqI9qQBod3db3Oj2sQeLCIHog59a6vXS9ZIIfAK\nqXWmLsDZw3Rti2QAmFyIEvj+2IQjNT5YEEt/MrneVhBiAU/84h706M+FO5wj\nKGzRNH0moS7r4CkyzZ7EM6RPxjdAdV9ZXVzXBG35NcsxghbDUUO8Oqi38Ixk\nbzHs\r\n=RbRi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"d2de7f773bd6f31830799f821b6572941415df57","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.1","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.2","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.12_1588872291734_0.15196005037575255","host":"s3://npm-registry-packages"}},"0.1.13":{"name":"gatsby-recipes","version":"0.1.13","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.13","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"32b9927cb3b819169f5dfe334ab13d8063c2ac76","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.13.tgz","fileCount":143,"integrity":"sha512-5bE3ZTOu74t8NdnvmeLqclwxs+i2+pYRJh/LUkWzH3xe7KmSZI6GGUoYca9oW2DTGWwJXu9T/1ZY/7zMKE7eHw==","signatures":[{"sig":"MEQCIC629CvbZIWDy2zuyVLXeBrR05FAX/rW5+Y+pWujc6OJAiA+O76tVmV8gjUkr2fQOgCyEY2Yn/yRY1i8Us90DDm+2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":362583,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetSoECRA9TVsSAnZWagAAJv4P/0CmhLKEh5N2GTS0hOju\nkW+h6baXloDm8NDl+VPAwr1X+p1M55hN4F6T4yWmiDBWJf4Nb8mwTSvPXXiY\ni6RW0OooJoTIljggrxlDC+yIMBtMeua1HNnxUD+dxkLiBNpB9pTV5aRNvxcG\naRNA401Qtn+kFO8VyPG54jvySKbwxNcQqlIPgx//5BM9R9khlvyDtsNlvDvo\nEgBF5f60yfHEOHBsNSK6EPbKUsFoKmfivYVHGCIey/gcGzdEJszr75w6Cjha\n+Vu6GwR18JFbHBvFgvhAP0up3woFc4L04gWyapuMEpZJAf/Q4ysCBTIVc09g\nHT2sC/qKi/gfRMAW8b1VuVxXQaf1N/8ogDLOr3wBE0GwFHIucntv5wvoyFlO\nOf3I1vQPTCssA3QnvFaj/mXcod3rfXYWicUnbofayBLNB/DrOCjGzkvWgFaC\nmXwjy2wef7q4dndXPoCZpuIWqRI/JhxJRaAN+wRwWhE+tp+KzXks4029Uus/\nkxm5cRdQxq2TTUhaWrZ8YpiZwsjd06ZasmVankHl8MqzI3I8GMLvEaHJBKdo\nmSKpByynl+ruOmZ06B+HPvuHE0q+U1buCg5RSXUqRj8TXzAkA3svTEUVp+uD\nB8mXB5e6aR+Q8QDcfeQYkfLFhnK6brkZtx17H9jwydSZl1laqR+q9/6Vk4yA\nHxwY\r\n=g14w\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"a3815c304da33ddefe277d1767914f684ca58733","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.2","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.13_1588931075513_0.05363508633347425","host":"s3://npm-registry-packages"}},"0.1.14":{"name":"gatsby-recipes","version":"0.1.14","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.14","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3f6a5775e403cdbe9b52221c70f9feda5da340d1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.14.tgz","fileCount":143,"integrity":"sha512-raYrJXKGCAZ1mqfoa8V2gX8jhxX9K+Mwmp3vSUo+hOwFU1FfEjpRyrncvtL841lv4zI13MQ59aLe6dMehS3jIw==","signatures":[{"sig":"MEUCIBLFMBlv/XEG1maUSHgZ2tLPY3V8XZIg4cZRHw90Q1nNAiEAwuOwYlvBROEmA6yhS4omqEVN//5RaVP211etBDxcsY0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":361667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetX2RCRA9TVsSAnZWagAAW+kP/R7t63TV5NhVxU1tJnJv\nmnAVhzxmXtCMO3n2xQk2yqbD0TWBjh+LbShVEVkzDD5HpVKBr4NlyH8PnZ7/\n4h6WWiv/Ypy2i28DHPzdibOpVJe6HrHEfl9y/u0yTrlF98ZyBKTw3vOarrZX\nwgTmLHgoCYdrCr1VYvho2R0JBj32apuWzUBdh0nGzH7gomSwvoSPOxd8k5IP\nbPt8kg5r/c2CpxUNHDrTTCR2sKf/teBs0MpnVKOdhi/bU5MBr290nBfxK8er\nIOiF4dPPcRSb0VzWwwE4G5VHjAjMta++K6khatvutCsSK8ACuEhpujB24l3F\nvNcwqHMOCoWMd/l9+YGYmlNaMh/pETF6ePgUNwsczAc71TINuc9mZCT4A999\nCrNjXQ9ZuZzzpA15f90ifI/zCg5l7cQX3d4FCp9IB8P/vlbwdsg4WZCdGdaN\neLakIwvf/XWlBLmAZ83+rmZ9GdOJUdH4QgaeaOgSatZ6ABjryqF3ph7N11qV\n3KOgwZmd7z7daBG7KUKddRqx2IJ3N5W96n+ONekvAG4tL1eW4yqAToPcfJD3\nxQvGNFPjzO/2Q7i8BJWddPk07CGfRdmV/pLFKP6k3jsjy7SasPh7a3qIYOTP\nCfn/fhgTNx5s2IriGYDmAPTV+mkYhVAdxeTERtiu6a8ViwrL1vFP8ZWxmw4y\noK6g\r\n=zKZ1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"a59c44194cac75c0cd4270d280571d094addd3fb","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.3","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.14_1588952465192_0.9674657015671133","host":"s3://npm-registry-packages"}},"0.1.15":{"name":"gatsby-recipes","version":"0.1.15","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.15","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7cf98cc95ce03f77e0989f71d5899e8bca3a0b33","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.15.tgz","fileCount":144,"integrity":"sha512-sEzIpRGn5XY55FdDcWBMf2jEyAQZLtH5z4RDoPm3iB9I6yljkGU23ooHqqINDZVr33o8Ybeqep+XujjEG3jzdw==","signatures":[{"sig":"MEQCIEQ4YOLAxIDau9zCI3S7xUEef8VXRrF5dc7ocv5oTwk6AiBswYahNT95KJAUG8w1WpLYnu5ufFfjGQ7dUSQ3SM5ZwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":364847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuS8SCRA9TVsSAnZWagAADbQP/1HD3SOFi0MQOUy3V608\nzl2cQEw4hCD2k1f0vl5pYYslR1uBwrhZadyeJWKq5o0PMAyszfGLdTj7hIQO\nD6TRuCVkuEyiB0/fC0t1BVDKMl7TbvhniBYRrqe5B2/WfijR7tlBVz0wT6ig\nbP1Y/6llVGNFiMuqw8QU1DlVYpnKQRqVBgjlFm9tPudgQ1KWJcsiNkDQX8Xe\nDvxTcNlpt9Ynm/7fugZq4PHmdRwlM29TlFNpQwAJKy9CF/H3Dp9vtf+5I+BK\nAf/Ex+zi1IrIrosjnk8fsh3y+QIhxgPqhERzkRBzfcjw398qmSsUkJkvrA7T\nc0u87jT351g4G2HpDKPFZtOKo9P+wbo98sEgjwD7Icfz2i6aSEHChasPgP9p\niejbSw60J19x04gXpcnfqpZtIKSxnGFkvMMVKDvBaR7n1//Ajy6xVdjORd8E\nz3I/hC0CaseJB9C+HC+ltUOaJA4P/UkH1guRFrkJIC4Tr5hcafG3SulEy2GH\nVco1N6koEc+q7h0FKhEdoQFJQoH/9wEY9eVA9qTNtaX61BZL5DApX89LFRJT\nOUIjN/C8BjnC7LxnC6GEspzRm0QCrh9UTwKKQvqrLfSSp4G3sQF7qzCh4TrW\n+cfU6nlqg/5U9gY5nCIfGnNYVQmb9KLj15MgO4rRfJxUqL5FtWtPkBIyXqyv\nDR2l\r\n=NCOj\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"c34bd667b3ecdfaef365ced82d8c2fa46d73ad39","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.20.2/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.2.5","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.1.1","execa":"^4.0.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.3","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.1","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.15_1589194514358_0.2431913285146372","host":"s3://npm-registry-packages"}},"0.1.16":{"name":"gatsby-recipes","version":"0.1.16","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.16","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d3a4b7e3f81767fb62d0e0a0351f41b13b964853","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.16.tgz","fileCount":145,"integrity":"sha512-kJ3uBXdmkmUN7Y5jRBQiusBdZOOa9sH8GYJF7Z56TGJvMQVJYuxKJtS4jtqHbUcYX9gcRkA85z6h8Cp28CXRzg==","signatures":[{"sig":"MEYCIQCVAh8AIQzbQVJTb35iwmlillEe5sl4LQZ+tOlQWUlaoAIhALB5XMT3sHkKv068wE/eMK6SUwWcr1uD0qrLyAua54Bz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1445544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu6ibCRA9TVsSAnZWagAA3+AP/0hTb7pldExupdzqNyV/\n3kLBrZl9KMTiSilOTwbWuP+R/SzA88tOi2hbWTRHOrSlOg2hcLy6j6IQIyeq\ncK9L3ne7x8B+q/yi0P7T8WFrH7JsKSSBQ+DTyPRoiA9YXVJ54cl3ow2sCdlN\n2i3lqqAngVRg3GxGoaVe8Au3NXHXUaQ+9y9b/w4uOm1IW3+hBPOgiIynhkbY\n9JXZ6AtSC2UjhMMOp2G4aIyhjQ9qg9oImC2ma4zpqXwS8nvEatv4/MkTzAHa\nsKYIyaJFRZm3nKUGhMTIalzcWfkd0jZzurbzUk5OaA8I0I3FKo3g8mBLOJJN\nbmQaE36vCkE1dp2bsNzhgc6eshVSEeFrVAGILz+IMSsDT4T9KLkHk/lue8lq\n7OXx37ENwVPnb08xiF6kFAtWDdgHLP3p10PrhOZP1RkcUq7n5ozl1ojpKHbU\nKiLWUVfQPxb/51E1f2G0cdBED/qxquEtzi+4bk6+NZrvw1tfblvYnSf4SvxG\nlZWjtxomADAAabLG3uk5EeIOWDXssEVKT0kYiY7hqC/MlpfWHWkdoG+RwG/B\n7TVBPwz0kCMkyLLEAq5dv7YMb3VYfWIjqoGznVrxUhqPxQeqrdgm3t3epJj1\nmboD7hUvhrWSLkiMtnJusDBUZY+5vRhVKSCnU3oBLlqiQW90IAn83u5kX9vZ\n2kC8\r\n=zeMS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"0f53567b9a21f3c4284ff59e8c7316d9a4b1e0ea","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.3.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.3.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.16_1589356698741_0.3179224670770522","host":"s3://npm-registry-packages"}},"0.1.17":{"name":"gatsby-recipes","version":"0.1.17","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.17","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"820f2da0d621916ac7254fbb2aa0dde2c4ace86c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.17.tgz","fileCount":144,"integrity":"sha512-Loy9JQ+pZ/fD9VruepjQb8FtjruQLqom+75Src2SzGTD9ujzlPr4QZ9Wc4TgFBoHC/6lt4ZeqX4w8awdmFK+sw==","signatures":[{"sig":"MEUCIEifd8h8NKPfzutCpkBqdmF1QN/yva2FFKUeiNtTU/VRAiEA1wjQ7u1TXHFHRi+KXkMIAfK18SSCLee0k6oas+UJDLM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":364860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu/HWCRA9TVsSAnZWagAAYVIP/0dNtJaWLSo9qqw7yG0e\nDPe7qJk6AuxO0jUTpqtxi5Xkxxr+VI1apTY3xctdF3/TrGjj+EkT8FAazm9g\ncty0TSudIYm8MC5MUNzK/WS0/uDFomxI0Vvmdxg499pH7j3zpn4udQRREEux\n5oSPWtYZa5iTnttFiyIPR+BT6jJYxa0h9wIx2uLHblRWgpUXIfd3JswHYjMs\nyw5hgNQaCLI5glMU0OqxMdWpnihFWrgTcagocoZtGLimeBUIEdd1pKRaKIvP\nw8rILINoX2PuZpCDUICGF8CtvHYus0CbZhLLosJkQy+ClfhHMM8yU1TDIEzI\nXrvjXyeIMldH0UlRnMS8Ew7wToaFrzqqVthSYeBOCOBXSlkjYrlYMeZT/a3t\nT2sQCRIndcb+S5QPbOLPBUwhdJsjHi1EzW4yxytaKBeE1P1WiT4CRxqLelj/\nQUmo3gpOVxmJczOrFoHmm9fjZ2WbABSX0MmZ7a/iDf/YeM4QVDHXiLKRIjHe\n9vzvlLBQzQRml7URAVqyBC2J7RrZOSZD436IasJi5kQ4QO2DSbY7jUtsovLB\nVcCVlLzzRa4Bwu/QOxL1V3kONgadtStPlD5IS2gzrIj6F0KfrPNyjDsf1Oxc\nH4jQiZA7smmtlyYK14qiY+3h7+2hFXnE13FbVxtvOCDEuWIWBvRS3LM19rl1\nOSK/\r\n=Nwds\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"e9f22d2b04f5857146ca40de91f6642823780564","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.17_1589375445643_0.4251740079305306","host":"s3://npm-registry-packages"}},"0.1.18":{"name":"gatsby-recipes","version":"0.1.18","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.18","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ec94adaaa53d7ef8b28c32191fc71d89bfb0fb61","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.18.tgz","fileCount":147,"integrity":"sha512-jGW5FdKNIvWvpmFKN/vDyolIP/9zg+vs3m+/MH2Pm2XNSnBKJVnSS/B5P5UfxMhEYNP+xTBHh5KPntagTOKxXw==","signatures":[{"sig":"MEUCIGFtxSLe+jitbhV4qknaQz6J/PBpcEqO7BeYhlJTUL9bAiEAmFFAapIEH98rS4+LYX5qE+Vh5FS5uWuEystJD0tlVLI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1497261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevG2ACRA9TVsSAnZWagAAMe8P/ieWAet2CmH+TpVDwFIO\nHTfpFPwBObyUcIHqMXvVHKRAxypJWup9P/4akh4jA7yJPkMxcF8bejzXoqTx\nUTTrMlF+N6OCrSxzegdACoVaQNOdtwZJ9lSUYNTEPKXV4+D51e3ZmThYqKqM\njnGr+3pwKUx9+/QdttUiCW77rySOn2RFo0vfRgsfF/7v5YvfknWbCo4bGT9L\nG0nQayTi0fTsuadvoUG1V8HfJ4grT+U5s6R0NWuWt7s91IL3peR4Rdb8NqNU\nmmZQdAEMXb5EjD4p/z/roBw25B34HHgF6mlON/MkRgyrmdP9sdlsBuO4jwhF\nVy3ys8JM20MLIcD5fcOypEIN0PaDN0xo/+8ixO9oTY+aEAPgvES/j0Ycnjbe\nfqEMWNBXig+QMDai6Q8/+E8k6gtxpCBp6j8K+Kgod10EjgNyVGy9Q4S0eDwD\nZFmtPLTiJ4VjcX3R5qGMMqu85puZ6d4SDWxzHM/jwRi4zu5LPnWLwFpo2uFX\nsrSGQJ0JEFvie+Q0w2GdL189hsMnragG8+M3clW9V9IDUuyGYJ+6HDm7xuWg\no2AK61zbeaO1RYRO2arFC+P4Tnt0OPthPgVuyFb6A1SJKZby9p/48414FTgX\n7EsNLd7sGC+Db5mIhkxjQoE5KNAcQ1Px+I/LaI4B6/6qi2otwGrT9bWkZmv8\nR/+t\r\n=ReVW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"de4918292b3957ec309912eebb8260408164a310","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.18_1589407104056_0.8651406477331247","host":"s3://npm-registry-packages"}},"0.1.19":{"name":"gatsby-recipes","version":"0.1.19","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.19","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ac2634452c89253bd18d4f73face44db442b413d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.19.tgz","fileCount":147,"integrity":"sha512-N++VIje7M0N6zoShZMISyaIzMwbu9Lot7iyNDk6BblI466J8yQvceqj4uDIb9NzI6cQ82Px0yFGXapymsWGg9Q==","signatures":[{"sig":"MEUCIQCWVG3xMh1pSLPcRm2wufxbJ1O88zk1XwZ6puQC8CEEmQIgBbsd0Ik1He4VtCGug6UXxl90Cj507AMgGhWwG2rIpBI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1497577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevLooCRA9TVsSAnZWagAAvUYP/RJfi6KU0z99U2yDS+zR\nkTyxs/iFd3u1UOBvhCkopDMT9iJXzsF/Uc7yaYOx4DkvnPtjYACu2oqGaNAS\nAkEXlqSZ1iRFoaHtSj2yiCCYqDMCX1ZUK/m2dm49AYK8tOSoFbzDV4+YWYCl\n/Jz31SoFYLpptXawRMB6qJnonP1RqP7bWY+umtQG19Ja6oLDUODAAfpDhMJp\nA2C254q5IeyWJHJnD0LGh47SpUTTu1X5odMHuFc4VaDmtDCBO7dfRYH0BTot\nJPJjLoFkCIqD5J4VtVlhSyCyqsKoB792rphCWGVu9Hu/o5t58eoMu3QAVchu\n3MkoxBH0NlitgN76cpSof3do8PHIU2UhT2gYSjjLmNwcaKOu3pFqbSBTKjHm\nv1R4vXE+yGG0Skx76J5ghsMYufc1qrVXxae3uLqcYDeGiFqQ8W6abpQp2xm5\nMUCimQf7jKLwEcbCu4eyVRV2/CcCS39LvlbtXShAEkCYG3rjrlBN/+85fDsb\nRZC7z+GUyOkQT83hpRD+ss5YkFvB951Qad0wc2crqaksmEHzu9RtOh7Xb+Xq\nnoQ8OG7y4MLky1zym2FCqLbNp0mKyv8TecVEeCkk+ldXqdZ/z18G1CqjbAwp\n/j3MaYinf/FlG+ZaYlGLJpCRpZHnv59IYARb+qFw3xrRa3nIQLFJVjTaRc1M\n1c2L\r\n=BlVE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"807f63567e0d4024d3d09b258f473d847aeddaf1","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.19_1589426727880_0.09261878825404612","host":"s3://npm-registry-packages"}},"0.1.20-prompt-restart.15275":{"name":"gatsby-recipes","version":"0.1.20-prompt-restart.15275","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.20-prompt-restart.15275","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e0bc4b95fb87ec27b664f3efb75df8ce751abe1b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.20-prompt-restart.15275.tgz","fileCount":145,"integrity":"sha512-Uv80gfy/k305ZRJfsAfPPVE0ox358DcsNXQHciinn8Cgk61vavs80cj6OrktXk6df/TKtC3R/acWxZUc4nWI1Q==","signatures":[{"sig":"MEYCIQDcLNVYTxVOqXoPRYyu4VfqfEHVetvASVEHq9D5fFqFhgIhAKDca4CUVe6nIvKMmoGzoMpj4Ju3q4HgyuxU3ZO+YRQ4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":369469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevoujCRA9TVsSAnZWagAACfYP/3XjM1efA0OKfwckIokA\nCcO0VZv2rjQpCqvjdwV3NwYkz5tzOminmiX87nTwuXy8U68fjYSYcQ8RhygO\nI77rf8g4W2IXrXQsl23C8JPwsLdAn4YGbSQ7vao/pzOMPBLZMKdBbnKlfPQe\nyqXOEVLCip4++uE53VPlmME1k0TofePAnwgWPdiDMy1tP0tJ9tctU5o6E9ti\nM32Y6bRa0CRZ9JGioKG2YVepsoEQPS85mSwS+8gUZiou2Py5nkyEvi1Ng71S\nztuHUSIlL/5ZzqCSGurgTPomoNtYTTgEZLG2G2XCW4WsSisq5yyHO6zqpEsS\nrOjkjK/ScSbBo1eSmjgdCWgpsePeRdTTR76Ln68KNWU9/084ZA+H3k6RmEwN\nszPHMGKckOxY4clWbp01yPyYGswUn0vZnpXjFNng7BDi8nc+k5nAEnWh59yf\nGrv8P6DzgmLmKalYdlQny99x+cAUA+xqokWvQtFVbtyEIfhOJVVhxeEszwVx\nQfYiTMkNWv4sL4zgJ5P7/CYkSlyZKqjHx0Uf/cgUxqQV3tkvJSF95d8PxfrF\nnQNGwnrhZnlkYjRA+MXN5pKv1zmiIj0slb9sT30fAUquciCqRfWLWYwC1p4C\n5vDuaeJK8EyQwSBSyVCAARy4tyl0u1uph4J8mWmVKSjBa9o86xHOjWpyZL2m\n7k4/\r\n=sJ/W\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like `gatsby recipes ./my-cool-recipe.mdx`\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name=\"src pages directory\"\n    path=\"src/pages\"\n  }}\n/>\n```\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n`<NPMPackage name=\"lodash\" version=\"latest\" />`\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n`<NPMScript name=\"test\" command=\"jest\" />`\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n<File path=\"test.md\" content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\" />\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```bash\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"cf906f4335677f5a3a89c153e4eb28f23130427a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"1.2.3-prompt-restart.78+cf906f433","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"1.1.2-prompt-restart.128+cf906f433","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.2-prompt-restart.128+cf906f433","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.20-prompt-restart.15275_1589545891383_0.6651215589481401","host":"s3://npm-registry-packages"}},"0.1.20-prompt-restart.15279":{"name":"gatsby-recipes","version":"0.1.20-prompt-restart.15279","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.20-prompt-restart.15279","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"79c3254edbe4f90dba6ed21abdd2c936b3e0a7bf","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.20-prompt-restart.15279.tgz","fileCount":145,"integrity":"sha512-FqLqhANqIlyS5+1+E+dajYx7h8DYV9yBTuehWLYGJOTxGl4EYkUbDlOaitVu59raZdCK9zkRsY1m6os42/wUtw==","signatures":[{"sig":"MEQCIHLRljWCwOb2aoeDu56k9KAclLRV3wrDMWURyjlGQco8AiBcu3Ihg2VWiL5RmbPb78nmbYyKpK+EGPEYp5U77V663Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":369469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevpKoCRA9TVsSAnZWagAAYGoP/3agISfoWNrR/Tmz4KV2\nv/z93VG9WAY6gUavrhD2PQtV/rNYKq0hARcMglJ7B3AxwL/9LdqZAbEYay+2\nlCOVImICmB33yIAu6ka1jFxd8/q2cdgiNN8zffQCgBuQT0uMFOWOaUwOiT70\n7Dip6AkAad+1teGp7sYrDmJ7Bl5dg2QpUy8l6mmsrda97pzBURGyuWYZZ6wI\nNKiFnNBrvfCFfJtPT9P4tWSqsvMh1aPEo04lW9cFdbm2Q/Yp/OWTQUtFGB8P\nOz0FJhfx5AIMyIvuxTpbwEWx9eOhsIyjThlNO5U7QLME8ktJHrIpaHuVZduY\nUsBlT957NEE6GZtVJpFlqn68Vgm1OVtu3V/2wLI28ba/bwhHIkrAA7nAD9HJ\nV6dnQU9jIUE+EshE2dBcSfDvHrxYiZWwJBjTZXt9Gx4OFZWFWfgwS4oiAvb+\nsm2D/TL+s4cBKiy1uPDqD5M50TVH4ZYrbvZGW1zdNsNhMLBV5408zj2A8ywG\njA/7C1HPMzjkZ9l7+nRZaJ2BnmkEnimBJdch76TpwgfuDMOapk1xn/xdIB1X\nMBtWRi+oKwpQJBeDz1Vh7gOMwNKi8ZmTg0MhjvYSRBlDbb5GHMQt31OvWbMy\nTOJHt53I0ULI1WRP2yKs+3lhZhoY4u+HIXkd/6DiPmHT6Q/5Z96fbwChcap5\nNz4P\r\n=siXx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like `gatsby recipes ./my-cool-recipe.mdx`\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name=\"src pages directory\"\n    path=\"src/pages\"\n  }}\n/>\n```\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n`<NPMPackage name=\"lodash\" version=\"latest\" />`\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n`<NPMScript name=\"test\" command=\"jest\" />`\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n<File path=\"test.md\" content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\" />\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```bash\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"089b745f00020cc06dc4eaf19b0f8b2d4ab75550","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"1.2.3-prompt-restart.82+089b745f0","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"1.1.2-prompt-restart.132+089b745f0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.2-prompt-restart.132+089b745f0","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.20-prompt-restart.15279_1589547688423_0.3394881645407317","host":"s3://npm-registry-packages"}},"0.1.20-prompt-restart.15280":{"name":"gatsby-recipes","version":"0.1.20-prompt-restart.15280","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.20-prompt-restart.15280","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"208f4bfbdbc91df7d335051b27de8ca228ce83e2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.20-prompt-restart.15280.tgz","fileCount":145,"integrity":"sha512-tfR042IMI249Et+7W66Mrp+zJj8kKUTgM2gi542Yslwg4hC9uGrEwKDYnmXJCf3TW6DQHqrnMdzCIzxw01i8ZQ==","signatures":[{"sig":"MEUCIDd+e1TyoO0AKYOwOSK11BdOunGtPGiuSTzKNC7EYrq8AiEAhJpZa4xzZIw5w1++J0V6sLjG+eYQuXfulIQ0nJ/el4c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":369469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevpYUCRA9TVsSAnZWagAAQLwP/RFwF9r/5ZLfU88gAF7W\nC/P4wnrkz5DJkO81SIJlEeedck4lTbH19fAw563J53+e2CpM0nguMZ30bRCK\nU5HfvUqNESX96vE6maHM1McZNNVfYoDuBAG9C5brl/w8VN89F5xYmqWkYenR\npVxgmFybPTUWSVsIHhrr6I4BkapgR8x4R2bhp4EYtkQICu2zIAE6BISAWnp3\n5Drn286EMbvSMqgwOP9dJqJjC/TlB37CPnVZDM2KYQ+woYJsEGUplHqxJxQU\nE+5RalGtbTIrfJT6PGpJVJ5FBdvDuvHxVDxCBQpfUnxm7fmFNGvuiHhIpPbT\n6bbK51DZdX7VBF92K2sb8GyRRJyRz005H4WHJ4V+1a+mrNWoODZsEwqQDPUt\nN8+IYHZy+JL5T6KoeTOWV2f7gdL3ne2HYU4vu1y7/EZOn7EHKBMgOGCPUfjA\nFMNr1gmIAe7UQ9eHne/vSlRnd6eY0IXMWyDRE3rCQ1o8QqdLnfFjR8aOTGVy\nEHBrGtUEuuaUcg87t7w6Hz0xabWLU2P5SPARdvfYuHpngVn8TytpNz0jUiEx\nUef3pKvxuEi1K5q7y8HdJ2bFnD3J7wMJaziC7wCjsd1bPUk45dvjVT2H3+XT\nDm0YLKukbjz2OleaIYmyI7U12xirwM8asHxAwO580yRQWzt8jema+oFrBxQN\nlFFa\r\n=ZJNs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like `gatsby recipes ./my-cool-recipe.mdx`\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name=\"src pages directory\"\n    path=\"src/pages\"\n  }}\n/>\n```\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n`<NPMPackage name=\"lodash\" version=\"latest\" />`\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n`<NPMScript name=\"test\" command=\"jest\" />`\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n<File path=\"test.md\" content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\" />\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```bash\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"4b2cae5a81e8f75e2e291131812751fb95a93359","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"1.2.3-prompt-restart.83+4b2cae5a8","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"1.1.2-prompt-restart.133+4b2cae5a8","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.2-prompt-restart.133+4b2cae5a8","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.20-prompt-restart.15280_1589548564237_0.25194758810499596","host":"s3://npm-registry-packages"}},"0.1.20":{"name":"gatsby-recipes","version":"0.1.20","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.20","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b8d986a20965666f7359fd06b40ae5085ac190e0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.20.tgz","fileCount":146,"integrity":"sha512-x9azxy1QstmjUZj1Wy6Txp5Xui76nNWitk5PCszn404j2UM+C0tuYqvpJe9nA3ZhEGJwm9EYPh1W5vSkqsXZ3w==","signatures":[{"sig":"MEYCIQCddKKccnXA/WxN8YCnQ2N5JTpjzwZ7DDFXns5VSr4/qwIhAJCjHNHbJVQsbsngUtRYGe9ibmT7cG+ji3WNT8JkrEpt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":370309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewpuICRA9TVsSAnZWagAAMyIP/A3RvXep0c5O7HdwXpak\nMPPXDNMB5/18X4GiRiB1FFyke0EjJw+QrbvPHiclTG0ZsRWafk+lRWmmUxGT\nsCCUQAizbMG64lrqMbowiBQ8iVzQZZSSRQybZXqYwwx2aZj6LhxkQIhLmNL1\nxs+R/YREeMvvAVAIcmoQsgHTzS8dBEGFNFK8oKKt9y6KnzON7n+HmF6LRgmD\n35jbFa0rHV4dAVd9u4U9mBMJOeFTDGDEBtPOF1S+jbg0yOHeUEUM3N5eAvJX\n/HMczmidK8An3lyNiA795anbmmg+hLMg+jCVDg73bLWXBsVtmJ6MteLn9B+v\nNwwPLmE7OlczoOsySkA2GO7sjWkLpP3LhFMtgn/t5pE9GqI8+ZEenEPH1HBf\nibLgqkGVoKe/GEkCe23A4UxTSm+mHGmntXUcLY4rlppiNIBHGKx+ZZhrM8gY\nEkZnJDHLBOOXyvfvs/qQkYSaITg1Ar1kqpIWsGoueZWuflOqNP8QuD5UFGyN\n2YE90YwNCGqM9dFTIBnq8wy6vLTIedEkAvx9iKyZEWneGZ831gaTOwrBkk8C\n/xLKcyzZTeSiGb8tnqlZNstPogEn/kse+LZ3CKGSPd0S3jqGiDOKEnxLOV1v\nwRNEidoQQCtgDv2N/sjcO6g0QLTfYbrLqE/O/36kyZt40O2uGtxVQn316KNm\nq+s8\r\n=dfjx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"8cfc1165e5f2661247e089c1a3c1219131151368","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.4","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.2","event-source-polyfill":"^1.0.12","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.20_1589812104387_0.4775001330749358","host":"s3://npm-registry-packages"}},"0.1.21":{"name":"gatsby-recipes","version":"0.1.21","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.21","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2ebc29ad5f86716ecbcc8ec11a8a98305a7d88a2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.21.tgz","fileCount":147,"integrity":"sha512-P5z1ifr51bQQmzOQN3FTit6FT3piAoEECWeLJyjIhPBpwe1PkynIZjdRiIqSWOTyIp5sJrfsfwdV6pvZ4bj0Dw==","signatures":[{"sig":"MEQCIEIQtVhZJg/I5qad38cOweqaByWVqQH/0HJ8AObEKsyoAiBTMxVxdPYom/hWju+GtR99n0UIJ5aAVlXedoexv1I2cg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":371319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewuRoCRA9TVsSAnZWagAANRAP/iqtJrLd4UfTG7eMMe7k\nChy9YxtpM5Ed5A4tcMLfUqbW4SdZr6mEFy0a10CpTWmrdfJBsSgAEcgVydnF\ndWhJ6B5e22B3P/e8g2K9yb5xEHxK5X6OG8JQ6VynRFsAtmyj5uI/6fEW5/5/\n5o8vxfozTyEXWoSdJz50JKArNRQBOhhzQzuTNLH1oU4brFjoZX1UV79OT9W8\nPP49q+uwF36do+DLnSw3F1N1Qc1mJvBHsp/NmLdTsoVZG2v25wQn9/0EnNw5\niFP7tLur1+jrmyfM8QFjWvpufwL9tCrz/DXVwo6OyC8TFkwVj9YP8teqX7WU\nj33a0YFSnGBma+4kO6hOO5D+CgcKBpQ896CSeBA4dte+qmL8hsZbcPtpZw8P\np6rfmPoiR7lJC5j+qe41mJ6ZcFpQmpDkwp5++Zh170txEPgxlm6HuKqoKL5f\n7W1Es47rqc2lDoR9TBMSA1gOk9emmOf7XYILU8J0Re5ik/fo/cf47x+E2dOI\njqFghm3fC/Y+ibag3f37sE+GWgpwcXdE9y/DbmD4VXosKT5x/cXVHjjnF7OK\ndeZBSdCmEcgCn/WUJWhf9F+EQx9/cqIN0Ymy4Q7UKgT/1Ju4KOMqrukkCqn6\nLixbApFSmhHUDlhQ5mrSdogbgR+184BJkEnUDPVwA300SBHKTTp9LWtnct/t\nL8f5\r\n=JXMk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"d19567d310d9cf92960a4b61e6d73c18146aa1d9","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v10.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.5","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.2.3","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.3","event-source-polyfill":"^1.0.14","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.21_1589830760039_0.4071926969135786","host":"s3://npm-registry-packages"}},"0.1.22-prompt-restart.15347":{"name":"gatsby-recipes","version":"0.1.22-prompt-restart.15347","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.22-prompt-restart.15347","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"fa195a567be468545baa7d3775171a1313aa3348","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.22-prompt-restart.15347.tgz","fileCount":147,"integrity":"sha512-sFMWNNzXViJ2DR04JbKwkbwHLFEF2fKpuVedWCgNDjcxELQVy7GqoWLMiiOfuAUelZR+wA1FW4elTOHy8XobEQ==","signatures":[{"sig":"MEUCIHWX+ohzVAOog/eGNjq1IiKOulTDUTu1P0+XFruDZ44xAiEAzzhRjUZVddidctnphsl2hcSn3AYVwvbttY/BoHv5484=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":371775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew5auCRA9TVsSAnZWagAAJvYQAJG3yiDYKOf1YH7jVEZy\nbrQv0PYc7JCny6vOyLA+6VAW1QKT7wR5+p207HMfN3WdSnL8yiHffV8bhMJh\nMJY1Btg2Meey4L47dlb5FzTgQDFkVVz1D1L/kaYccon3hq9e4vbUa0sCOe2r\nauiYUZH91FM/Eo2Hxw8bN1I52vhbS0pFy02dluCOrD8+nNWA+PB1A9tcrek6\n9JVbCwS8RAq7chC0/L4l3M/R9FecWWAky2oowhe+mB5eTa8f/qHBroiC9mIJ\npZ4rockhHS2ubLmhxZxi8ZK5tZkvdGszsFl9TlKYEaQpoNVOSzfh1eWNNtoa\nC5lTyx6IcqgUbY1mYqL5nWEx2zfmH/3J307brN3bhdrxVlIH3h8nCLLM0Fko\nPAWRgg3yJa4SpI4LgPE1Rnge6YQoY5P8+C5eRJI8P7yqNn3eP8tJtBGUpCyk\n3ktiegWCvwuxG/afxrApim4T0/Z+Jk3x8qF3DN8b396j9JBMnqMZYtP8hOyV\ng+GaqTUgpn9eIvhS4hn1kaWRENrd61lgTWpDqaNsF7+7BWJPxIy5D0a7T72D\nuPYvixxoEoIxzSTGaZ/od4UGdjEruUwfYMjMjbPplYKRR/r9uAGiq3xOi00o\nEOpGYfVsO+FskpnlBhumt/8j8eEABnpjog/6hagpRXpCPNpOWFlHbZcMO0eV\nqaLZ\r\n=WiY0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name** name of the plugin\n- **options** object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key** string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme** the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path** the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name:** name of the command\n- **command** the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path** path to the file that should be created. The path is local to the root of the Node.js project (where the package.json is)\n- **content** URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them seperately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"34a9473d755bedec71c66c0fc3e8013291dbbd49","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"1.2.3-prompt-restart.96+34a9473d7","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"1.1.2-prompt-restart.146+34a9473d7","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"0.3.2-prompt-restart.146+34a9473d7","event-source-polyfill":"^1.0.14","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"2.9.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.22-prompt-restart.15347_1589876398562_0.9420286093723123","host":"s3://npm-registry-packages"}},"0.1.22":{"name":"gatsby-recipes","version":"0.1.22","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.22","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"119d3940da6d0b2d7fa120bd8aa1d010b04f1efc","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.22.tgz","fileCount":149,"integrity":"sha512-1Fnj1KCmA/ypfC3sFrGHVQstYIcUmi2ROlFKtMGkf2g/CBHToGGge2GVfVTHNCihHJirCVgq4I58MrzjXk3VJw==","signatures":[{"sig":"MEYCIQDU5TdjhrKQH1rj5NVw577Kvmp3ReVrLj36W1c0hkkcrwIhAJmU7Ov0kWYsyv7zhbs6chYWAbBdnPfe+xNRG1Vdbigz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":377913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew/gxCRA9TVsSAnZWagAAKAAP+QDtelK+ZkiW0lGD5p8U\nBw1wwwmCx/sG2zYyXHV2ql1VPbPyOd3dTwzfcwEa5NbMuO36f0IXBSdWYaJb\nTNUw8gTrF2zMamwu0fOPSUo1cXx8Dbk18kA1FAr5hGipQj6AeziNLs8DiN9H\nB0hwoJLvdIkgvqKjBH3P9BR7Y4pn4dfFoB85wnqSpN/9ekH8abKbsEU9+fzU\nc8onmmt5nKLPefkHPs9yRe6hBzy6K5lNuP80Q4xajPuS3KGS/c+BRH+49znj\naqGdkE1V8xyTCI3bq0Wypv4iI8JXqecFcsdzCEMk6GdYHn9u+JP0/yMZkZqy\n4qiyYLMaAqG/CGVY20Hq/JDkA+tiNf2adZwEiDI9M9lOrsYFHQD8jqw+hykA\ndC7dmB/DhzUm5zzRcETKqDIfiYGQeuaoZpLtR5U9pGpaJlC8gOBssjJc3OLo\nkFtlBVWpa4AuQNVIsT2krtRN30TtSa28PQYSch8JKlLrK8Xyl1r7WqMpSKPp\nZmOgm6QhBfsRWoS48L9sJcwUF+s3likyAbI8nVf9/UNvpzGjVASSrWvxfZwg\nCSxLHcl/5rDmnuo54ij7Bu2cUWjt1Hmf1mfj7SzIOzQFYFS2CKz99Elm7NP9\naB5zJ8v9xxHWtXbQoBPO7HGwp79BxYAxqOz0BZ7kZYlexdrUN/QH8rZh/jo/\nNJUc\r\n=NuuN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"e393c89cf82db382a1f080c7a497536b06aef1da","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.12.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.12.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.6","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.0","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.4","event-source-polyfill":"^1.0.14","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.22_1589901360785_0.4003289797579688","host":"s3://npm-registry-packages"}},"0.1.23":{"name":"gatsby-recipes","version":"0.1.23","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.23","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2581e63792f759e8400d0df42ac2f067f01c341c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.23.tgz","fileCount":149,"integrity":"sha512-73dKKNywGCtr7ebowk19m0D5hLIRy8Pqz4b0+Rviu1ma7AYxt7/eHUBeAMmgrAl8X9agqPxBC7+emj21OsZWpw==","signatures":[{"sig":"MEUCIGmUYrAVnE5bqMbnjN+QZtCij7JlAcTLt+ukGS3Sh/u/AiEA90yG9UUuczqHocPS2nFHhx1l0yq40wyeDqWYQFOeMhE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":377741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexN7zCRA9TVsSAnZWagAA7/UP/j503Lehtieh/jKSxmLZ\nmIDqFeVdKDj9yxaMmd7WDeKtGCeSI6kPicUn5TBjOvQdMhojGTxsynWS8DOT\nU2UVdkV3Cv2DVawlwZvWYVbTCcLI/DM2veU9bXfLJbLZREpwBu96XGtU+6VH\nctxfC0gE/bJV1IzhPBHOGmt2PjYZGqjLIeBToP4k345rRcIsClBZQeuxGbOj\n/9/wZmF7AVHxVZwqv1J/AQ7Lw1RpVnr4U9yUT9SW/dlQFpevN69cfeX3NBOI\n/JOm+O55ZZKjrpxhZhPpMaAzb9PVXYFeoPGBLAYDo6QoGCwZrnXBEB299HIa\nMsDV/D40nk/w0IEJv3BiXx+7ZYO6HMvKRiWt8kjCev4G/TznFkfeW/mG4kEX\nQVLGWxww/qlntP3mKIryIBWQ1gOWJCk3PltyFsDf4q8LmuYRi3mYpx0MFAeg\nOiznkyTjaEi42V1Ma2/4hBASCiSmOsQ88llnkH716GeoZ1iIz5m2PauL3h70\nkuy58TSJ224N/464Iy4+BEqIKecwuMrTFxIYoTbI2IhF2ydupmWMZ/q+Qg8s\n9yVvtBISKeH1/ZWSNT3i5Ffc22qvMJ8+ZJfkCAWU7Q3QwwQFJI/S5teLK6vr\n4B3trZxj//P+SC/occIkHkSyNpLtlwSj5tV4DjXERn38SbG3PBEyd/Hdi/wo\nPGN3\r\n=gev4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"49133e2d8bdf81bedfca76c88e210afa82441490","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.12.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.12.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.7","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.1","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.5","event-source-polyfill":"^1.0.14","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.23_1589960435410_0.5261655295589049","host":"s3://npm-registry-packages"}},"0.1.24":{"name":"gatsby-recipes","version":"0.1.24","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.24","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"be0215b8f2b78941661ca7566dbb3472d7391d86","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.24.tgz","fileCount":148,"integrity":"sha512-GDEmmqecOv28TgiVJJ5AG1bLVjz3FgQZ3wosTel6BOUBvOomcAqRpDTmFOSf1vSeLREW3oVH2BZJ/1/9jNx0qg==","signatures":[{"sig":"MEUCIBWbPNSO3bMu6jcYKupgTFtHX/9Zol4aFTGBVu5UYS1PAiEA3eAbRsVuBfQ/088jFPo2ZkqFwtESSsqOefT5AA/h0lk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1452693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexOfBCRA9TVsSAnZWagAAd+UP/i08VqFTZyN40Gv485X/\nyMtl5jSM3sdwullxXSQFSPmdLd+kK2Ewr9MyqyViNBEVURzpjmxY/r7LU60v\nUJt80aVemAda4lnTpnIoTokvzHXfOtI5OWIoKTyBW6Jc234HUMXh3Va0ZA2K\nQzSlJiZy2pjMtt96TLD7830uCHcNADX8au7bSeMPHfNFlKKlVMyNUCzZXoMx\niOlSD00B+52AX0GVYMlCEm2wX3+aW0AKSbsHBekbmE1MdLCPucGXJ9ewGIX9\nyRR6JIX1NGsay9eeDG9jOZRwlcTRmpA+LcMsymKZPz7lSVR5pdcJ0Sy81PI6\nXXV0WWg29e7AkmZe0TM+BjznpRRL5s1/wq3JgFLCYp8NOWHgNs0SWSSn+d52\nrix9P8osD/lTl1LswOsPPFUTckNUADeeqX7HcKwW3DUuv8QAO9nPWvaqghmv\nFJHBVW5BVrETJ8ze6ofkTdeaXJXUypu5gloJ/TWxJD9MuUfiC9qkAtV7UfaV\nX7pZfz2w2ZmYYAoTmvZgg/kih8Z0hmZM0q2KmhfWm8icC/QQ52wtdO2NMYVR\nM6EjHwTzR5h8mwP0T5OA/qDBX+G6iFwXsRUFgOUL8PYUix2iRgOTN1H3b2pG\n8/nlnvwhKKUQm+wPAZDQtYUXmMZSxfz5AfM686aJ2cKwcgBsl8lUVBi9PtLX\nOeEL\r\n=jvLL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"78271c317542bab22705508cf1d7bd4cfdb37200","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.3.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.3.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","babel-core":"7.0.0-bridge.0","import-jsx":"^4.0.0","is-newline":"^1.0.0","url-loader":"^1.1.2","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","is-relative":"^1.0.0","@babel/types":"^7.9.6","babel-eslint":"^10.1.0","babel-loader":"^8.1.0","@mdx-js/react":"^1.6.1","humanize-list":"^1.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.8","ink-select-input":"^3.1.2","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.2","graphql-type-json":"^0.3.1","unist-util-remove":"^2.0.0","babel-preset-gatsby":"^0.4.6","event-source-polyfill":"^1.0.14","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","babel-plugin-add-module-exports":"^0.3.3","babel-plugin-dynamic-import-node":"^2.3.3","babel-plugin-remove-graphql-queries":"^2.9.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","react-dom":"^16.12.0","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0","babel-preset-gatsby-package":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.24_1589962689140_0.14067630423393274","host":"s3://npm-registry-packages"}},"0.1.25":{"name":"gatsby-recipes","version":"0.1.25","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.25","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ebc92f8b4cc62b624901db9dd4423d4e2dc88921","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.25.tgz","fileCount":174,"integrity":"sha512-X8AzstXs6ed/MaQV4xKMnCsPAFGQo9OmAILIFklpvnnXo3mD7qKTtjkQZNL1GNNSK0NclC7kzhsrscWpf6dBEA==","signatures":[{"sig":"MEQCICC9jP9SxpimVks1iRNUSAfjEonTUji5Lr7vvs5/1z5PAiAHBSofqQyl8olSXPY22wZS/JCsAGjStwFxWBAIlxnS0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1513564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexwofCRA9TVsSAnZWagAA5m4P/1aQxhPQ2utUSr2eBIug\nfmFC6Gm84U8+F5Afun1HWnh0RsbDG6BTUnb9FmiuMnariuJokXmikoIdyRMw\njj6yf5Bm+F7MLbrOMV/RxWggMgIhsZ1+jvSEDs8cMiMWtuv5a9qKJiPL2vZM\nwuORId5HOVznYZa2oACYbTUHZnoWr2LLBYDokJdtE89HOXO95E220OzgH8yR\nYxZaluDjVtj4B0A5T+lT4ODM6gYA8XPXhSFvDAcETphKzAnmoqhRWk5f/Y5n\nqo4GQPUSQA4R8tosTOyO9Q2exe4KMN2AY2IS5xKPRATQNsCPmp9XL09CoMY+\nvCgKZ8hCEqffqU2MmehXti34IKMG3cul3CZWsZBCfsKcsnZGSUe677bnT6zj\nDoKqyNFROoSq8vRjev5U6kdM0H49cZQKZ7h1xiPUKtmZh/loJTu09U3nmDZ5\nHIyMA/ubPmjDu9EFNqOaswwKHBRd9Qf7jRhtR58qbB4Ew0CZZYMnLivWSyrg\nGuw49WaIjgkWts/G//zpByAxvowDO2+0JpzcXE7gkIm3LzcDGCd4IyDyT16y\netMagaEGam/ydVpDVkzLvbptHm8tnv5FPeJmTvD9JwX53Gv7V3aik21dSiIf\nNQmhqnFqap8XTBwfTdw+dVzXzKArNTiBVFxM53PjQ7jI68jux2LFFbj60OkG\n/yIx\r\n=VeK4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"gitHead":"1f915e821c4ba22cab04be252aecc4795a6b5654","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","import-jsx":"^4.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.8","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.2","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.25_1590102558844_0.0710173803606089","host":"s3://npm-registry-packages"}},"0.1.26":{"name":"gatsby-recipes","version":"0.1.26","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.26","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8f8a60f56552a25dd22600c72e3c99bd7e2efd12","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.26.tgz","fileCount":173,"integrity":"sha512-KENPA9U/mIs0hpMYtbw/ThUMZfa9yi8cwa/LRkXRUiwFWTvDzBTZ4lVDbKQ+SwVgQhs/5rWnfXcDXTbic0EMYQ==","signatures":[{"sig":"MEUCICSVWrBtP5yl8TsB/8tTgBHzjCXR5Op3sP1DtB+1Cm9FAiEApym2Gy+SRDppO9zvsUDh36g69YM/A6Mq0q0S7Yr1qd8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":393346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex3URCRA9TVsSAnZWagAAR4QP/AnEBYEMWFUvE6ZsgZ6g\nPYZLsognjM9CFNDFWO8exm0azDaJDRS2k5h3L3Gfgvp9QxGs+FN7C43wA+a1\nfINaGYEasdvUXoaIFxgs3I2D5HORgrfCcZb8+vSXme7kzCPyyPYFO2QNe6e7\nWTNsReIhnud941Pkf493vZJaVfiQ6X1f1iV9VZY0vJonKspxbp9XDwL7CG7I\njeCYQwOkoQmnIRYegxJs9xPS2Tsswb07Go2pN6beVWDo1FyLX/CyZ8CDRfGZ\nAJsAWpdyGKLQfOKyuVCIFJzUljuupdrUkxSYMYz3mZ+li/m9bpcDpVqu06i8\nuaPR7htwm470IyHqIKWRNWH99kweRwxIxQStdFx6oCd8qS1f/x1gu0oq5Y7t\nXIsig1iJjjp8LO9EcqQufZkar1tFwt7NWOR0oeaD6aaFE+i7Cph3dv+BfT6L\nQy11so8/YkDHLtoAe7+kqdQdAAvX55yvXLfCKm5E4g4C3B5qANrNr9hHqBMR\nYJCLI97IiVvNTskUo4+m3WlQAI0jMlJS2gwgrdher8sNspYIlEPVJZVW4i9d\nC+CcJohkkKDxi7X2agCd+OkI6f8It3niWN39lYdYpIRKSIBt0HDDBxnJjRXd\nCtscR+mRJIeyyKtDue7ROM9sELX+8V4tQ2krhpAJzJlVlG+lRDo94FgpnHKD\nt/u/\r\n=orpX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e3c4efcbae6f5eab377a40bc88f45511f7c02c80","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.12.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.12.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","import-jsx":"^4.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.26_1590129937036_0.9876417186568782","host":"s3://npm-registry-packages"}},"0.1.27":{"name":"gatsby-recipes","version":"0.1.27","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.27","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"be4a14ee4b7f3f80374508c40cd24cd6f6fb476d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.27.tgz","fileCount":173,"integrity":"sha512-OZxs8cDltAdfmnp4OFcL2zYvZBmB2jkRdXTKQkhSKDCVlSV871Rsun4T/lII2DcHe0tdzOu/nVT/TxQcZWBBZw==","signatures":[{"sig":"MEUCIEJxqHIuzTgxGxSvhvMMoUHrmQtXo7qU1UtojP1rU7OUAiEApoUNu8intcBA1oQid625Wf+EWsO7FzoU74SuQ19nkOs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1472395,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex4DOCRA9TVsSAnZWagAAP/gQAJ9rELbpEmPZlhbOBkS3\nU8WDN8M05dI0zglb+zONC7hkX7Z/Ye1oNoxuDyq35wqA15ZnwUzoAKLty5JG\nurh5Z/HysJFshVdjRke6uipYim37iZqYMc5Q1V4/JEMycqbxjqjgew2nTRDG\nTPFR5ls+eyscuLDx6TrGnaSTLhUiKA5HuDG1crtlgJxgt3SMT9ii5EqpU+1U\nR6Xj1kV3/3Heo8Y0Za3Nwjbrn5gBXqz/CntLHYmrDtouG4OJp+/Xs1pApJfw\ntbj66oOx28ZwclEmeyaEtSzqoPNK89H673Y5LowAlWEtNbSNL3CkqLW3cVoX\nZGVw6EQw7I80FsZ/dgivWtH+B9HmjvMGM2h202fLrw4J+WQloj5xROLbHlXO\nPtziAzy474nQVJpyN9ZAK6f5SiJTzRh+xCFlUa29wHnEFOmAUIrMC7cbXGNS\nmXN+7r1f9xW5VLbiq/f6VNmkzlDuy/NUlTEJ9e4lZWZP26eMbWRa/CCDhZDc\n7ZkznDOPdf1dTHzlfwHGVOY/av+1tQLVfwI0tmxiSzByYApHQOYpYl6Tz+iR\nvHFx8STpM40BTraoGCejO4bEad9CcROaCITTv2KvBsehP1V+0HJhr9wLibWz\nb3uITtdAUykcxC9qc+Wx4xXx+K+ArZ9JA5N9P176BDNX2/sjiX1HemYomRgx\nGNFj\r\n=i20N\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e5417f6924b45ec52b571aa772aff4824d8e8566","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.3.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.3.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","import-jsx":"^4.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.27_1590132942388_0.17661834492546813","host":"s3://npm-registry-packages"}},"0.1.28":{"name":"gatsby-recipes","version":"0.1.28","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.28","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5e3a16c929d6601be5af929365062b5e5a9a7192","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.28.tgz","fileCount":172,"integrity":"sha512-Wqeu7xyxpOVhRaAYMK/Rbvtmw2jEgAXOcwowINeHVBteJTAD1MztSgf1OtZiqXxTxmDnp64YBgb55XVcxrQxPQ==","signatures":[{"sig":"MEUCIQD0fegrW8mKoE4sDxEHLWDwpPgWXltTmPk6FisMK7je8QIgEPyQLnrdvEaY1wXh19g/7+U+nGbnUU58/g/gXCHN8rY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":393264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex6YOCRA9TVsSAnZWagAAhV8P/0TAE3rQVcC38/7Ang7M\nFompXmbIHFeXFg2185IWwAFkEf75T9zQLS/cT1BBTxYAEdqBNBsB2PTnNVrn\n97lIvU7zfL135cPdPWVt7pk18HO6eX8qHSEL90/cm6Fu0pHYuE/TR7GTnECQ\npwvufD7lyhee8bK5Y55FQP0L6YOZGOaBr1nZUsQoZIntSTwnP59KItFyHTVa\nEck4GH/7CUYQq3d2+F6RwsvO7k/l4SDUgVAeij0DfFAuO6DKNNt1ebFFQehq\nfS/lV39uYIn/NXBWRHBV7t5kvFCQbBiFMzE8yE2UVaC5bumLZEHjM8M1QDb9\nsFVKoOjzTz/6aYcfxVzM6HpblXClGjtrIb49CHuyWnTPoTH2F8KT3cpBOfgn\nVC+/6EBL3e3PICZXkF1bw/SUipnbHw238TGdP73AD6Ccp8pNdxl7KIb8yP3I\nk0H57gEEAg81+f5dqSXkAl13VEh/Gp2i4WPTs3LrV/H7ANJCVHlDuH1MIEsr\nQMXY9tnZMlHvtoTsN/fGzn8NnIpeX1fOI7cKJ05gxlyh6WJJTe4RAUsiIatD\n9aQTz1VWh4BUu0A472g7kmsp42V84iKgGMhqKLehK6abL7QgWv7isFxB+B7G\nOWRd/wmaJvwbLRFjk8SnMQpx7tqZoJiHBzE4hFqS6MN9YAjEITQqygsXCEYq\n0VMO\r\n=ztCa\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ae3a6c476f34d826d71b732752db66de0baedd22","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","import-jsx":"^4.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.28_1590142478030_0.8743708266141126","host":"s3://npm-registry-packages"}},"0.1.29":{"name":"gatsby-recipes","version":"0.1.29","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.29","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"38c1da6c7021733ac1b1c602e9eecfda75ea558a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.29.tgz","fileCount":170,"integrity":"sha512-dP0TALXMaCfZLvlg/x+rUSaqptqefWFW43JxMGB2UucMnnWmgdTeaSGsys/X4avJvNBWikHo6zonc7uxAl0eJA==","signatures":[{"sig":"MEUCIDZvjAWv45hhB4vlPQHw/3TYCp25mjAuCTgXd2hLWEJ6AiEAhYTjJchb7CAPRar7VK6MAcwC06VSbqTjOIwNMgfgI1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1514652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezBGFCRA9TVsSAnZWagAAbxgP+gPUETxTm9ZOH+axox/h\nE3b1yK0D+wlUhUCRJNh/f6JWJ/t8P6VARJ/RHXDntzYWC27nvRgkkLtbsXt2\nUkmOB9pw+YqSdr3nMoiESL7jZdYoLxmDscujbDqO9Go8/z0jawowjr9KPMd5\nlcWXjkI9FWQUd9Q8lE7+iTyv32B+JLxBrwvxmDiwYRmqnmpfk5eMv7y/X2NR\nEhb76bHBvu1YevpH4I4C8lwxx3GlfF22S1Y45KyVkl0jB76A3SiD2uEyImZC\ndIuq3SicBfK825x3U6qu06QrS5rMUPPcRQFDmHvV12fDiN2sldTlI8HtdRam\nx4pz/HriwdeN2HbcdUrp1phXSXQY1k6q/o6JFig+a47TzHhGCweOmoPGIv33\nsdiNZclwOwGDOuJYWlDHCiBG55GWVESi1ed1uRuxSbYBtZu5dRQkRviiaRTu\nrLkqqXTzcGmOsal2MT/6XYDNP8rtLaWm2qcj6Wka9NyM5Yy6LGOr2PNiyyje\nboLnMCAGG8UCoNY0z6LPpcTi+z8epZeqZrlWl8I9HGh2lswmGsG0UF/T4DMC\n2zVBP8nYaIY18xbQUhlzYP51owuJT60UMWim/ie2j8IDayOdA5qaxb5f/SUy\n57CZxEJpMXzC1Pnw4kAPe8oaBQzIzIqxy17+18Zkia4qU3c4ROM1Nj21T1ub\nYDZC\r\n=jpGl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fde2d515223a607b2d8194fb2abd120567bc7186","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","node-fetch":"^2.6.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.29_1590432132488_0.017139218653213106","host":"s3://npm-registry-packages"}},"0.1.30":{"name":"gatsby-recipes","version":"0.1.30","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.30","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"71cdeb4c1a7396de74ed8f351971e04267507e55","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.30.tgz","fileCount":171,"integrity":"sha512-b6u1ivsPIZl5nzWxEGJe+2B0hXqn/n0jZNm87z9r82NsgDEFgKXGEi8gLvScP6H+vX+nDf+n+BKLL2ATIlSZFA==","signatures":[{"sig":"MEYCIQD3M0pH6PnN5ARrUPr3ocJTcPKTNU2ShRBJoJeR6rpj9gIhAMbUGniDZCGqj5/k9aLUY8pqxYpeW9N3G5ldKZeLBkDg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1516123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezTKyCRA9TVsSAnZWagAAe8sQAJxnZYqqCoMXHZuUCW7F\nYyBeLNHg9iQTolLH4lBhwFXKQsymkZ6EKmdjixZHyCJHzxk6jnydLOR9Pw2O\nmwge8MAZWLQu30ym47N7W0E+S+idufK+caLGbLP+1m5oimnXQKKzkdOX15/M\nYxguyXaTOILlFMuL33ZUOoqSFSNbUxs8z3ETgD4kj4VZVhOuyO2AEhpKSI4T\nqiSyjRQRo6GnrYReFaSzGHHwnsEMBurehdnAEIBjCz4LavMt6vVPCpPT1pW8\nFtklGwj0lCeiVpkGv0yuzBzI7XdGDTZu3T113oDSX6te7b5R4jfMztx+ExqY\n2TZr847Jc77UXbbO4aOX8btAE3VW/4+5/yB2RAFKtaGH7aON862A9WzUDLQn\nn4xrb1nNsPNjV++yQWJ7tUD/kplo03XXBBNuu3NMdNK6FF+1fAhSxppVqtn1\nZzTVhwQabGwniG/rimFeCEbsbJ5mqOK1l4thvIIA0C9112twvkcmVb3nNG+V\nIzA9/EMTMDsuOSq+fYY8SQkLppT/F7pf4+fLKrv01xp+V4tU7Nq3rXqjkT/O\nvdAfPhrDz79LMPwt92i94S22GmzXP3/V5HGuMHvZmXakh1Ar0BlaoBIbJfJ9\nCD3o7MsXksWHnPJyEGmSJM1KDIkVHDcGEqr/04o/m/fkdoKMRvO5IjCbHRMl\nh9Rt\r\n=l/X2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"4eaa7cb8b184bc190694f6c7fd984a3929cbf3bb","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","node-fetch":"^2.6.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","@mdx-js/react":"^1.6.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.30_1590506161809_0.2725986309894213","host":"s3://npm-registry-packages"}},"0.1.31":{"name":"gatsby-recipes","version":"0.1.31","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.31","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"362d53474a3e1ed4fef26ceb173bb2591169779d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.31.tgz","fileCount":184,"integrity":"sha512-ONQjBQcYVuXBoLSX4v89teELo4qLezoeCRi1bfL5E39YLs3PdAuehRnwJIo47SROEPe0+J7d+ynheadCWUuLjg==","signatures":[{"sig":"MEUCIDnGvZNHnQUGATyZdO72wC8DszxbG/kfqTzVbJ8b3lrWAiEAqDSlZ9nwaWNGInyQL1CbuMdR9f0+q3WW7dJGpRKAS0Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":415476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJez9X1CRA9TVsSAnZWagAAdyAQAIPPJSZA8BcPNI4lpKUA\nx6Qmxo40T1ez5CLlXXyZi8t1RIAuXsE/lm4ch58pODera102/hjZPPXfYETo\nJYwBhP6i/t2bW7/1qzJlO0Ve3FTmIbSNpOLwTmEn9AcZVCLxNLArrwXN2jD/\nMfXfSIbZdPtS8A955Jgwb9LrO6dfF95mxush/evk9T47uIR9DY/xtyYo/408\nhV3fhjiEmwYN092E6i5rYE58W8f990uZTmyxLi4sosQ0gOHZAUOCKdEmj+lC\ngkyOrH+rhPFsVFQaDAdmGYth1pvaUS8asC1w8lTpF6auKUngPrQokPlqIUaL\n1ngmwt8XI9wOKzhvcl3pGDKXnlesklZjuJiUWrOAyz5spXDhJuL6DOp5wuGb\nU5wAXkiPru5V+zhag4gzK9lQZnL2vD6BImyNYSTPtIHAQSJ7/d/filhNfmY1\n1nt20eyU4uVGwkfGirN+uZxNa3NTKJpvKpxCIAw1H8OTeQViEYV8O/k5otGn\nyjX3/W7hNpi/e1CL6T78NARh66iLjY3GYfFBgOGe0ljfxQkhpXTcaLM3aZ7c\nB4xPO/KxakVRdotMxwG4thR3jvMxQ++sFxCtgOfdNjDVKl3LHEIyTGRdLnuq\nIyKqsbnieb7jZo/Ufp7ky/9ogLM/sBlNHhvuYD9s559oJuZ37dhkvMehzQdc\nGa0W\r\n=P6V2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"82653c9baf09de0bda453f1d807abec829788b64","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.10.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.10.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.1","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","@babel/types":"^7.9.6","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.1","graphql-tools":"^6.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.31_1590679028789_0.8994158680453275","host":"s3://npm-registry-packages"}},"0.1.32":{"name":"gatsby-recipes","version":"0.1.32","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"af7b96762424b46015ea53295f86897ac7cecf77","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32.tgz","fileCount":185,"integrity":"sha512-MdziiVR8E1LsTn0wonThPUHh6wH/Rn8foyKW0FQaWns3oMsNrcbIz1oNKaYssNoQKdBoT9JJb/Py406JS62HhQ==","signatures":[{"sig":"MEUCIQCZJcWw8bVig2yn6zThoaMA8zmF2sHNN7KQCgggtvUTtQIgXdTSklNweYrYWl1JnH/hubbhR8pChZGGxqTFh4VQCQk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":433403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0jJ2CRA9TVsSAnZWagAAH9MP/A7mf9DPPWo/dY52X1zi\nKNEjSVWU4WODhNDi8pT/AaBl73YDUko1YdtbReVuqkpgbWQ5J3n1+9qoKUdl\nVaCQi87qBx/GPx5ucVH9YPWr7HDYhmx4aotv33e4qvX2CtCTeSMTskO2W33N\nEKKnXBB/a4axd5jz3piFn7iRDP5qQmSAwPNS7eQ5TvsrXddM0xOWrUbemKCn\nqL5wC1dTn+DW7FKjVitOGp/vWNi0WrpKA/RP3Kn8GWJ3dYexucM1M/3JoMxm\nT3XbwXRlAonPjDTcwWr8qCtsK5RTdPeUhVF66i19WcJkKW7P9uRITXU0z41k\nS05ew9hQkBMwCzBlySBjU2YkuVrPZgdFrLQqk2EZLJlFLcp9XS7dnZxzyNlJ\nzs9xE2UniTJZmUQ61PrZrz9qLeB7nNqk+Zus+lKukcOIwqkxw4bfNnVN78Cc\nFqKuo4OsIebW81lu4leOV/nrFhO1XxgJYaxltw561KE0Y9hqaNIPpwz7z1pO\ndhUD/l+9l4Hb34TywS4xWe+Vhq473nH2uWrHTPNd4t5GngG0lIBgDCNUTbqN\nHN/qQCPplIwXifoPh87yk5qguifWEwmaMr/7oYacZ10qUOo11ISOKmiMRW1c\nwdDtzgj4BXd0rOFJw0pEcClOAu3/BtdC5pW6JyrGmzZjO9iORieLX9sUVsmf\nVwjF\r\n=J1+o\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"3a1b7477afea16ca7e2407c774c1b26e466a6a31","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.12.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.12.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.1","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.1","graphql-tools":"^6.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32_1590833782342_0.6128166324525846","host":"s3://npm-registry-packages"}},"0.1.33":{"name":"gatsby-recipes","version":"0.1.33","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.33","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"829c269dee34ef24b28af5bd78dab6dc700e31c3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.33.tgz","fileCount":178,"integrity":"sha512-1ZXjp+fjH8GvcrFQ6uUDj2eZP7GY1Lx7QsH596E7WfSAb0eXIJXlQ+meUumjfD/ajvJOYByYmQofXElZ3xFQew==","signatures":[{"sig":"MEUCIGs5yQ/vTGICj3k/M+fgX6DULaQq1MO20kUjwjwKdmQBAiEArnzM1smIeh2mVbQ8IZi1PRnc8KKyHyJXncUswmyZ0no=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1555202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0xVGCRA9TVsSAnZWagAA5BoP/RKD2qYkcbzQgwzZ2Aa9\nwWIECL6O/Nt0IoeLnw8ZQnX7tvX/XNW/BRMm1jcustPIcKUvGkn3o+XsMRLE\nDteXQ/29nLW/7RrZnE94V7u3NI+noD+tmnCFGxjBNBmNRqD0BQwd44zx+t8i\nSz8P/kb6AWRUG27RmQ5AeBRaKaBmjoYu0RaMcKSiT5RpdCVnXL5QaaARr04E\nz3mQYGEuRlDQMeOg5nGfuO2BjxI2dKmynQMMN21s6jKGx7acSelXmL0bi87L\nwepjFv0g01528nEJEumt6whhPxyGYYzhn6BcD6DDFFdUtU/fS/jrYa6dDzgD\n/4XbBroE2EKtW04D3PcENelf7mCgrMSEAdzAzw14tFT1DgR2Ml+pUkKMBdGT\nnTiRZ6ILbFnpUZNjcB4ucKftlXTr1HO+PL1u1rC+eaddTkAV5vfnAuwhQij6\nXo/zSC2PS6Vxg4dSMNGEqIG9P0k0e77M4Rit2tp/K2DU4oX1K7cXMb14oWGr\nr7p1jV7Enb3RHZsiwlw6yrHJmrS0p9f/ppcOhq9LFvuBYv+qKrAGYbvT4H3I\nNyKl5bOiZs3ZOgS0qq5AuTLOzkNiJwFVpSOsRdTymqRB2j+V3eVOd3Y82/SX\nVH+GDMjjqPcWWmTMXh6DnKmg3iLx3qh+VFM+ZIXyAzkstRRc7fsxwq10twXI\nf++6\r\n=ThK+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"94f490cf1c54d1cb1e4e3dfda1e484541982c483","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.1","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.1","graphql-tools":"^6.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.33_1590891846147_0.9180089268425642","host":"s3://npm-registry-packages"}},"0.1.34":{"name":"gatsby-recipes","version":"0.1.34","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.34","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f8a639738daca8679e0d9250d92a7287771d5e52","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.34.tgz","fileCount":178,"integrity":"sha512-QriLHGD96pNMMqac2HEvAu06fEdqcZpz04emaxvahC1h+1zhab3dCX+Fka827Nh3qNxqkccbvZDXINUyZsMzBQ==","signatures":[{"sig":"MEYCIQCkUv6r7EgM4Z11lRP9vIkkME0x1BQ5nKozSVRJ0OZ2rwIhAJkdjpwKx4hHEgZcLJ+rk/vkkST6jFfMc9xSEjBQCXld","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1555827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0x5vCRA9TVsSAnZWagAATkwP/0MO3WfIrTTmAHfsE4OU\nFtYUByrbOwgYevU5rxuvMXQXDw65G/n65/r9RNIrYuSSF1CjzqE3tfVkuq9f\nwfYZ3Osp7lSseZ7Y2n5KHzkdUkJ8M+tfEJis+6L5OhEQTl1MUaShnLMrwsBg\nrsN3GotrcojYuksd5R2aK+gHAff2ZZIv1aHR3+TX332V00TAr2GCf3q+GxqB\nF2w/U0hbT/6Di/I5gTTRPMVIAIp5/3BuMkdp6Ib7NiQfMmZ0JES8ggJWRH1x\n+aA/LEo+kGYIi4+XPPf/Bf++1Kk/qSfM8OEXY5b9lIrDtnGcy7lMPaq+IV4Y\nxWxXVyNDftSoIN+3B+I2HTCa99d/Bk4Ibh4SLc+IFqU2dCJuISrQLlPGHOQ8\nXnYZjpr85VOAcp735mXxU6FNQ8N+p0CUO1n73C3CBeMgb2M+xtxIc3QAMjEd\nQ/7HnF2gvddhwSX97i+1TwfBotziYLvafikwhIR4VQ3GF6bc0gKPX8v+SGKx\nr3qTmN/gOEzbEeAV2o3OjRvdcG7q9K3AB5ZQAxabCRci3boYSyM3gB4OpBNG\n5yPD5wbNHTWNbb9P+7hEXn+JXEbpWrCrswzQMyF7rJ4yBdqpfYwugmiXssn/\nQ7gEdN+x67taPBXUvzWQCZeZagpDZKY1zVChiKyp+2UJLXb/e8ATJeL05TZA\nM3KI\r\n=WIm7\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"200b3c1179069eaad657d09d55f969203cb1845e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.1","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.1","graphql-tools":"^6.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","strip-ansi":"^6.0.0","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.34_1590894190048_0.32174743007777606","host":"s3://npm-registry-packages"}},"0.1.35":{"name":"gatsby-recipes","version":"0.1.35","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.35","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"343727b58e9872e73c0427a4a6d48496f9957ca1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.35.tgz","fileCount":177,"integrity":"sha512-MruXHh3GnnAHkGh9RysKz33xYkILc0iID3z6sd1ibQCBrX11kK3V4U0VBq/jBaI8BhUjpe8kipIr3fM/og2+0Q==","signatures":[{"sig":"MEQCIGKJIaQjc5BQSKtMQHBak1gn9Dw15iEn3iWtqgb+dfIPAiA1q/i5GNsEYF3oDRk4/ahSgRVTcYz0xbnE5W/jlVsn4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":398843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1iyaCRA9TVsSAnZWagAANP8P/1R1Rqd9kDjjugyaoyTs\nPpUuC8DJDUyiWpeno2YvU+ctftfSTfJuldqlNO5/ETDfMuKL8CayJcdw+3JL\nic2DI9P/k1HcEoEwlC+qCx2aD9vxHA2LNPqeCGt1WcG2VEj5vjjKyUNFodBT\nXqixw4ZCP37zfkN0N1IiMcOkFVoRP3AE2td1UYncf4xr3oUc++P+9ZrX08tf\nHcCABZAOwj7eqmadknJ3Xd2HLGjCAklFtrn7H+krMH0q92uWlZRVPlwzMb3V\nqXmBJtq3q7ebx0Mz5OnuxUCCMTarBGJ7JGjH1pmx55syCPvJ+1uZd87SjQBZ\n9HE7SSJSuNxapETnjrOomg/v2kF8/YQc2c42iz4LRvqShaLugI8ZZnKZXxk9\n2UyT+g+dN2SWTWm4GvH10d19O8vOA9vcyDbayIRAog6U9bcYg1slYhopaBhs\nVKp4wlzVRZommzpmHewBSVNkOjjLONdMpM0pPgnwH1wCClYWyKS5e2RrtwCE\nJkaPXCwhfKsLt0tNjWj2edujcU6RuOqb7zNMjZkRvCXF2U53gfru14N40p9g\n4rQIjL6ptmqpulV3phna6EJu1S2sootG/WwMgUPZ1Zqcdwz+lQ5vo1q53Rhq\n3LV726Zs6/bToCIklAd1fa7u6256yOeMNMY9aHyG/7W11MZ01TVs/2iWvpkC\nSFeq\r\n=+vgi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c7ebfcf6cae083e38c7bfd9266af9fb2b40d211b","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.21.0/node@v10.15.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.15.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.1","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.1","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^1.6.1","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.1","graphql-tools":"^6.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@mdx-js/runtime":"^1.6.1","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-telemetry":"^1.3.9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.9.6","gatsby-core-utils":"^1.3.3","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.8.4","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.35_1591094425996_0.28417034597325563","host":"s3://npm-registry-packages"}},"0.1.36":{"name":"gatsby-recipes","version":"0.1.36","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.36","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a40211b23c11255cd6187b3282d5d2d9bb16441c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.36.tgz","fileCount":177,"integrity":"sha512-nDIPCOUkwVGwAap7dITKXSrKJ06er0xgs0LTlB5y+ylQ/2NkyY6g1V+DiFF4/SLLjl9iTxNPgtzffoX+5OXSaw==","signatures":[{"sig":"MEUCIQDijzUEp242IkMbPsOa3xsRm/85BWbmBkRYSQnRfF4yEAIgIndIvb+MBfgVMwuNVcjxJCkWIVHdufa6eFze0MMadSg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":399023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1kWMCRA9TVsSAnZWagAANZUP+QG1cR35Mevhpb3woOIn\n/a59yw68FuFXlOFnqGeCP4DIxl2osrJmB/P3oHt2XmxYT3HZmF/o17+GzFp+\nSPblESDpajSxRTX5lBOlknEnjXVjaLej/KfSEvrQH7OikwIedbTZzzyuH5H/\n2Pn43n/XK3hB0M1R+6+0SZ2VkKVsAuztVWeSRp7cVLGPNYZmyi3X9hPtzqPc\nPoeIpncN+XJuhw3MAyJawP+Zhnl9M+CaRlYDTjRO48R0Mk4L63CgNBCc+BwU\nWe1CKW6SGdMCmuCFlR3w4NXCfm5TDi/iopLOu5Y/akVBebmPQ893kOyP67Vc\n07Sw8bQXk7hEnRFbi2XOL9QFuNtFMaXIoxwGI/+JAamZRGp21nAhmuVUFFUp\nz2+O7pHQKWPrhHfBPiNdwl4mbMlkDwWW+QCmclsTtoEJ6WbS9hkkEX6eBdw8\nIuYAcrvtyJ7iF1Wrr8/K8L1ZT5Mt7pf3hEI4ehZ2ox8PtA+UnewvQACVD8e8\nOUnXJEYTOA/6RGao04w6Onst3gPWu5mi5pv1TuiaSB6ajf9/i8glX2/2wfvd\nDGBz2yOhuzE8XxrgFVJPgnRpDxEBlagIOEjqyjRQRYNFP89uO3+VXFzYeHfE\ndlR1zZGqKYToKkfDiyW1BB1mV8dCcLFrnys11P64DBrNGxnAhMu1MUBiyEN0\n+JPD\r\n=OgGg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"75f059efb1135362845bb347d2778cacfeb1454b","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.10","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.4","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.36_1591100811796_0.2839857889770885","host":"s3://npm-registry-packages"}},"0.1.37":{"name":"gatsby-recipes","version":"0.1.37","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.37","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d46a8a82b7d0a0ef15e06eb66785d1bc1d8c1093","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.37.tgz","fileCount":177,"integrity":"sha512-70C4zeEu8xdTKFlOkXqMmkmDN9+23wjKKErcOR8JhkKr1j5hOgnY7ieX+hHh1ud9AvaKKHlQGGvDNArX35E8tg==","signatures":[{"sig":"MEQCICPd17UrvXYm7ATwmPEB97RFP34bg3DeU0/aCSCjtZ8fAiBu6PZ1RWkyFatVQx/r980LOG1hVv6WSV5Fk0mkqnXTFA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":399556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe146CCRA9TVsSAnZWagAAbQ8QAJH7SYthU1JZcnKFpTw4\ncMpYv85qBIwaiJqQ7mHRumleLyZ5JpRpWP/VjCtM3/wLk1tY/ZtTQ0dUYLma\nPMoMgmnJkgugpQQyeKSVMfgVuisNux47vns3mJ4KZXf+Cvcqxq/8MSplmBbu\nMoynmfn03BaOtA21WqDJA9ViCWJK/bB68UnQXApZR7wYa0RiGOwkBpXeZhA3\ng/tw9Xc7UiH9Pkx4naRBnvDrvlRo6C9Qs5eFSe3WagoIZspDC6QgnNGg+yvQ\n4XlGC7U/+AzvhWwCoZlVhfO4Hryq51aWZsb3jSESq+rgxFP2qOBApPCYMx9S\nwJjviDs3E7E0voUv7hz03P/zISf4efxvAqGBLamKyXsLHMGMovM1+sf4btGY\n43aXIHwrCuELRy9IKVr1r0wp5lEyEEM9WSw5vLzCC1MzsmF5snZ1k2DUz4hD\nh20rZs8HGkIO9mtL5KSg2EHVI2oISLKvQen+o4Z9mxW7svA8MjntlX4kto/J\nELVixyMoX93FwA/n7it32n0kOcnlizC9CwqPX6UK5QEZllLHlsIfkGZwwgHc\nmoNpEVQvWQ++VnP72Ytaw4FyVnWyWZ/gm7NtmXjDgSph9GSukdTqqqetTxB6\nPWXBt8rgQpLruWmvDt7neJ1qS7d830vRlJdolqgk6jDDOLFTwd6BI7KSxDXV\n8TnB\r\n=SdCQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f8d000165f0be8050c71679b195b8cbe4c62be2e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.10","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.4","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.37_1591185021972_0.5418707510598677","host":"s3://npm-registry-packages"}},"0.1.38":{"name":"gatsby-recipes","version":"0.1.38","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.38","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"be832d76537c88f4a2cccc7daa2e658056930487","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.38.tgz","fileCount":177,"integrity":"sha512-Mly2n47VL0XfiAcK07+ZQvdOAFyYl3TH8cIApOpkJZCMSE0/Zmaz4rpD0W33ZXe2yIDnlVJkQPNDjAdYHN8ePA==","signatures":[{"sig":"MEUCIF3yvkScLXx6Kht8CMgqwnoyHCyYCSx8QJTkj4HjroskAiEAirEW/CrBbtPKWEopJf/U2KBlECoCeGp2iyhO7djZhco=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":399580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2iiKCRA9TVsSAnZWagAARoQP/Rg4+6n59uyIonV+RAe0\n3ExPHhvv2mMW+RRRCOt0CwX8B/0vle/b9mNmtm2YtY5qCJM1KV4cDB/r5pxY\njWnhLM71jHWgEN9MqrJqkn6QBK0yZzwPEXgz+AuJSJUDYLisKPOg3BpbPNxz\nkOx3ErUciw4vW3sZB8Ajsh1r69qf4fv5bAleDKuX730/NAktbZMMDXZE6wAx\nr+e4B/+qoDug6E4RYjO3tt5nKQVnMC+tk7vEbNfA6T2Iu2HkbCv0qd7tdcF+\ntB/YEl1zVOZJo03rqezQhTB69WYC9LxSFJW1/5sO46cYcA6oJt+cD4rL/qqT\nKvKLwwUMWtPNEB/DyW4WmnRuqVuDG3QVTx0piEMDBFVbvf3a7KctU3cg58Ff\niDOsLKbvcECSuvpx3lYjxkRdYG51fdhebMbhd91ZEUocZcGHuk8syoypADV/\nubXrDOSS7x3z0egeEj+nMqLFg7XpapCYlGvEg6ucYDGzI5luf0E1Cbksb0Rp\ngYr1imFwcifElM5EzvW0dEFWVWt9Nl+fFxx6ugIoLv6qIN2jB4O30U3900m+\ngui3sLq1+n7TgFftQZxQVsriaw46Zp7HT8D0SGDOFP99f3rV10VhJgutHXu/\nZqvNN6c+E9kQrblRkMkftM1hEsx9GLnH5gvTlBOIfbTH95YV49vGJK9Ab+vI\ngUoi\r\n=VCHG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e19855c392243b2c52f77d912b0a895f3f6cea26","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v12.12.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.12.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.10","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.4","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.38_1591355529688_0.4279740372565952","host":"s3://npm-registry-packages"}},"0.1.39":{"name":"gatsby-recipes","version":"0.1.39","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.39","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6bd079e0011fbe41c14b371f9b757bcaa377c3ad","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.39.tgz","fileCount":177,"integrity":"sha512-Pf8EGKhCAv4E1rU0NL6pKH9mC8QB/0pW/9oAAb9Rs2N3TeBYcQ36hQP95ana63GZwY35eKoFzjdWGHmegQw90Q==","signatures":[{"sig":"MEUCIEmW6q8IbK2gBzRIs/AIu4+PtQz9/ru0w1yY6xVWCheWAiEAhmgt2iT0FxiMehAScCaEk0RDkqqy//CysdKoFPpsmP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":399752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe31blCRA9TVsSAnZWagAAP7UP/2hshMXCfgHUsSqmnbWp\n2HTwSA0iPKTWYKimi7o4sO90Tw0bvc8aK243hyig1f7t9NUk2cnifZZ6zm5C\nCc+gb7/qe57+yiTf5ZEZwYc7zwHaVnIjmRH9DiwoVF54QAIcqQtG6FH5KNWL\nrZJWGrMGjDIsVGRMIBfSpu4+Pr0GNGlOQySyFzOgDybzE+g9VHkYf8RIrloz\nDPgMSJoXSPQbHnFqNqfPAuPr7+dVs0bP+dIHzu8keNzaRpcYk48BvsRyCcjo\nhTD817vzv8rfqJkE07I4stwQBVI5fDM2oHpLBzI+5X2UajcDtjBuxsYiyDzc\n9eDENZxery3yd6ypbV24tFstwdhuBo+wjUAzEFptl854xejKPCAMxixiftJr\npKzqxA9+ZpoL/PiXMkjwgiWtwdV06S20JJHu+wREkkdTzl8r3X51EeDQTMgH\n0L0YSl7H0YZwEf69K4CN0I7rl2qkuLUdDS+UA3JmVzY52uobHGikQRVFvYXp\nybiNfoCOpDcNmiI46ZxwF7kvRCPjBTd5CpQt0KnGtLdO6hpkNAnhHvfCemw7\nY63rSjkW9E6To8Sb1FwFdETm1po+7oji9USEU4eMN64AgWBXTDGoQTHYgI/b\nPPdF6DimrHeJkAtllKdI62naNPxIMMwxW+QejIadrs+TU8jy4E3Sdt6jt8MO\npUsK\r\n=/GAq\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"221481bef7733c9957fb9ba83178f08280243b81","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.11","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.5","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.39_1591695077273_0.9788601222271058","host":"s3://npm-registry-packages"}},"0.1.40":{"name":"gatsby-recipes","version":"0.1.40","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.40","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"902ec7f00a3889f59c9d9cf327c153204a17e227","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.40.tgz","fileCount":178,"integrity":"sha512-W5c3lqM8V+J/GuYTw2jZEBsIZQyOzl8RwOKYAlrW05kABSXP603W2zaLGP9EB04PfVy/4TCEAO2IQL24F7jaTg==","signatures":[{"sig":"MEUCIQC6vdSBoS7FpdCuuY9HSqUjyKSVXxeIx9XMZBtSSuLD+gIgDF2eiLSO5ICft4BQY8GQ7OXTgvwI+E33DkjZp4eytC8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":401558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6jJ3CRA9TVsSAnZWagAAAiIP/RbeGmutKNYW+H4GazLC\n35yXOAzTxsJe8rraKRRjlJK2uIapb6Nj33WW+V2Yo8duYcOavHcZtR0TivZk\nkw/W0HSxfrBoN9T81sXyvJeD+IzMzi63bxhWyZ6dxsx0EObDDATNg4N03tNz\nFKpOrH/ly8dVpx+b8nH4ZvVjnixYptfL2pyFVLP9zmkzOInfPVf06JFvhJEj\nDAG6NzXqzpFNcHRqnyxSG8ECf8vJL96A6Wvv3PNb/BMQF8IqUOHqWCoixy7A\niOHU35prDQ113gbedtG9PVlao1VV3ShbM8Rq2InAR6qq/subldm31vjDu7ch\ntp9FoOerx7kg4+n8feuz/u9uDTEcWWc5C8GxoFJlbtmqc59ITsmdT455U1bS\nQbRLm0MSTA3o/eLXruYc3013LDW1+q0LCtaJgmHt8SUweIRVFxDcRqmjRs1f\nfysE8RBqzgDRrsDU9N2vzFnus9HUoVeHaG2E5bqQu9vOzLWAXh05uoYgM8pt\nkgiX1aMnj4MhipgRk7tmBVLZNjV2vaeW4DZrdrhK3iu+9JpNtfK9jmHQ/4rx\ngyqIvzNgUCCFjMm+IoKDI+KdEkO1t4Ie8o6MQrBE7hJuZZD59pzMQckbxO4z\nzUZfKofMrnQvhMDvYoklttswFWzh0KhrVYIUndwTqfQm5MdDEBgyeF7eh9Nm\nGqMf\r\n=g42e\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"88d5eebc317758eeab92d8c025e278115c0bb6e3","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.11","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.5","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.40_1592406646328_0.8459933047529302","host":"s3://npm-registry-packages"}},"0.1.41":{"name":"gatsby-recipes","version":"0.1.41","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.41","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"34dfbfa860973fb0d8da71829aecc2b16685207d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.41.tgz","fileCount":178,"integrity":"sha512-u5CHnG7kccXMejgknvhafIANhfPagPhov7xmFqvJIMKxb87+nfluyWNH1CYKZ7PJeKGMC4jqC6LNWwTB5P749w==","signatures":[{"sig":"MEUCIDJCyp3lcI1u/TjlHKC5P9s7YZqvgSykkPtEIoBj9pgyAiEAzaL1gErP6zJej+MQWsiD2yiEhJDQKMaR/iEu7IHppsk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7MNCCRA9TVsSAnZWagAAM84P/A6kRMvgh/YVKX5N6K3d\n/p54XalWGqGWF4a7rg4deX9z+fu/mA3VDSsNOLk8OQly31DvQZn6FLRLn3dN\nozq/s32bosvFFmDpSXbRKScUS/YpyfqrZJlCufFlsxIOMoZKPffZEemrCNKj\nzSqXDdW5klSEPgDZ05TK4QY7nHJ0qcKVHvTtn/JzGCEgBUpUD5Qnr/nbgbBb\nXQBt6wS6GW3gNfpI6a6BT5UC5wTTis0Kydoyont+7WLI0tPwGOG2HcoHnrUk\n3O7TsxU1IPP1++aHrS0f27XAVSXrugXiKh2afFeQPWwSEcxI3VqIHyM99qWg\n7kHUMcRWkxHwuBxhbi0fffva/b0sQHeYM4QwYtBvsCkEahq6kKjFlKQMygco\nW1P2MfCC9dI9b+hyJ8RvX5r2R31B59mJ7k1iD7n5fRZJs/3+kydxUgiUYQOt\nWvnqhGGiaimwnXEyoQSjZxk9UnVBdwiwtT9OvCcuksFYsz/gbKRMLGHASFJn\nh3wLoINApE5eUgsbLD57ZMa5wxtqz/2utqI0FW5a2NMn0VpK6/zOwk27ABwu\nLJoLshIRj8TwwhqaSnQGXB5PGFyThrYEUY3F1E+3hpDvzMGAQkGZvtbxIXb6\ndTSgrDWHg6g1rwtuAlNu+HBO9fRJ2hHapp5xPqfkl2zTtFveVKyKBpz69UvV\nnBtD\r\n=zDcj\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"b95439c0dbce9c1434278a4800b51bed5d17116a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.12","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.6","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.41_1592574786514_0.9471016509332246","host":"s3://npm-registry-packages"}},"0.1.42":{"name":"gatsby-recipes","version":"0.1.42","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.42","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"78d53e870aa2322a6806283540fd3b32bb4db455","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.42.tgz","fileCount":178,"integrity":"sha512-1qkU/uIqCJFoPCll75gSUVoBYIcze2YhEGR/wtAZzEPbpCA+5lkf5mmkYxf7aVhKEWBQCwAng08Vp8cbafhCRw==","signatures":[{"sig":"MEUCIQDNeFsUSGIhBnU3RUZVtABcnHcrNNLmPXBo0kttaxCyEwIgdduWTOFTU5IUTJfLwRI2nio78pP7ETudE1WF/rEr5Og=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8NaNCRA9TVsSAnZWagAAAbsP/0syVzmlQvJY96LzO1Vi\nykzoGy+0LlP1dYqXbz8ZYYpRWyRMC3qBaGdabN+V1QKdooX+Tg26rx+izcmY\nWhiGDPCnj8pWBF1cKe6KQJPCm4O8myurqilbE/lO1HuVC+dgzVJ69jAY1EW8\nLB4KVu1t1XJ6RzwGw5X3jQWXZHASOdXwvO9HI7shY7Vium91Vt3ANeyfdITo\nlSZy40t7LM/52ii/aQrknEfSt6xOa7WwKV46LBJOpZJAr7B6zEMRWn/m6gx1\nW6fPwtGQD0UL3efdfMaz1Lpwzj96odVaqZ6JtM41iE4rC5WOh/WHw92VQj2Y\nbm1M0MuJumJu5frb+GZsAOb+O6OZJJuDDAt2d8Oo8RTr8zKX5MO3VMLtoWs4\nIeEITBsVwSzZXbaLmpBWKOpuRjEWDdZ5HLPdZNhiTxtlnxhzNdetjQ8x/Zo0\n1W6jrxK9B2RZPXnSrXlQTJFG0xHDELJsDwAhT2u1IDEC3j5HxgkkgUGk5efx\npfTKZPKp4APG4FYyRzBx7fIae9vm5py2bghsB13fBi50GH2tmKrPMN3R1iU7\nJAceznl/MjWjqOXl/SjoGVLFP+ASTkw4WQDURa7h8+L5nQw/8uhgQ+FMk2Uv\nHOF9xokpXhV4wounhp+LKEZor4n44yqM7D9ThfHsXBKAbM6VKyLjVNyxrpj6\nEDJl\r\n=9wJt\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"934e51691b29d55bbad8094175b6d9d71337bd61","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.0/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.5","strip-ansi":"^6.0.0","@babel/core":"^7.10.2","@mdx-js/mdx":"^1.6.5","detect-port":"^1.3.0","ink-spinner":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.10.2","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.5","graphql-tools":"^6.0.5","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.1","@mdx-js/runtime":"^1.6.5","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.2","gatsby-telemetry":"^1.3.13","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.0.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.7","graphql-type-json":"^0.3.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.1","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.1","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.42_1592841869327_0.3444909618196219","host":"s3://npm-registry-packages"}},"0.1.43":{"name":"gatsby-recipes","version":"0.1.43","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.43","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7bdc274c9544c939386c8d15d40308be9ddbf07f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.43.tgz","fileCount":178,"integrity":"sha512-YfuLUn6JGz+GB+EnMRMy2htt3aVqOWdLm/9S9YX/mztAvf7etcBXZbap1YUdPgjD7jMsIOHtzb+cIsJ+oj0lNg==","signatures":[{"sig":"MEQCIDQeQ/J9T1MDt1xK/Tq3GS6rXUFkgag1243MVHWaHAsMAiB676n3un1+hOzZIkYtG8anOTNKHvXknXLCnIu/To4seg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8u4tCRA9TVsSAnZWagAARHoP/iWueKt1DsoYDjuDoXl8\nDgn/FfYN+UKTpUB6dRsuE5vHPlliRL8aUbwWKklpaDPXJ1800ZQK6NGODy3v\nVu4dhHy07AB0LUs8FfU+VehficwdyJe+ujHH0ACRJ/PEaid2ohe86nxYUf7i\nmXZEN7E0dPuqMIEOZgcSZjOZTewV3ju2/hBYvxIrGrqLHgIWKTPTAPONNQ1v\nMxWDJcKeX8fSFHWDg7NNyEKdJSqW6idRXHBXCNc8D4X9sNg4muNqpQCsQuAI\nYIdsUs3c2MGBBSt4eCgLY55723bhYy7WqqpJt8fQSoQ3l3ivi12coIKOpJOK\nV2HSH648Jnxneth6cjPtxyig0br7lWmmfmXxUla5WG4ZrJDe8Qm27AvXbY+6\nxmXw9h/WZMOaxAvF19kDf/ggNhAuwbKH3l5g0x1rFAAMhivM5B/x7LS4iMDB\nDpMWjOFeUCqYYbGJDujietn+laS3bFK5LeHeRvadmVAAdDSBG2qKRVX1PxVP\nAz4GN5mZmKxOXYKsy1kixn7wY/P8zY8/gmO2ZyqU3FyZkPtLkScc3i8YYuIb\nWwN73g2UHfysCdcSB7q1CsMs65faaR4gRgDF3ujjPIxYv4HIjC/DGa8h80RI\nImiS2uqzgrvXwQbvuOVWVVK6d4mrqUjy/9SMM8gN4etd5XwnxO45gtJkH0+9\nsxOF\r\n=KzdB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"0005a1f2c905e4037aa9815605360688767b5e2e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v13.13.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"13.13.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","graphql-tools":"^6.0.10","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.14","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.8","graphql-type-json":"^0.3.2","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.43_1592978988847_0.4829036900934023","host":"s3://npm-registry-packages"}},"0.0.7-unifiedroutes.76":{"name":"gatsby-recipes","version":"0.0.7-unifiedroutes.76","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.7-unifiedroutes.76","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"859c4f146d2e197812e24ef94b52c675693db801","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.7-unifiedroutes.76.tgz","fileCount":178,"integrity":"sha512-oL119TqM47SI4WU0aXpya3rxMZtIzuJnI8Mxjx1UpB7M4Tr89hXez1ehOCGdIimeqG+AObC4SjA5PZEBnrpgtw==","signatures":[{"sig":"MEUCIDPhIuXoq3gb4vQNiopgVfA1BFUfiNIxkvHqZVncJv4qAiEAo7EOgcKL05tGUl3ZFnHQW3Li3Scpx2UC4yvp+v6Scmk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9QKOCRA9TVsSAnZWagAAw94P/A9VlqZuFmaNSVc3tCJU\nYp3SfrGqqPfLsdTElO6FEkrDIli370WjTmEwg0VafMdOjRauDCqn1ql8hVha\nuOVxtYBeXI4i15T8pSNThjKDExqpP6VDNPpiA7dpKtMB2fPxzJ8gPAm4KVVV\nMY40WXN0mRfXRgRNv/d6k0mVcwNgPysoOhp72XBCV+usub1MV9p+X3Wk9w9G\nJesq6NSIFhdwna4HXK5kIu/e14n9SehlDeZUdMm/GExEPxT4+MjSJDhiOIzH\nsFuY7nDM2EYV//Zdkvm49vHIF9QKb3qDDKZyNe2JNlkso71MTaatmStbOBPo\nNzr9jzzMnlqBrNYd5RCoaMc7DKf/bkn78QC00RxvKlURxjODLy6k/wSnODlv\nVWxvOwbHu549Tpr5Z2Ap9AVKz16ui/hauvH2EbpurW8fYe6dtw78l4a2pfpy\nuVkoN62kYHYrq5m0csqWI3Zfc+L69eX/Nk1oelHm+l3cjemJ99jHopfv40Eq\nWUpbRAqti05BibgtAg1TtmAiOgiW/mLJRgdhopXXhr0LNriqxyu4Rngsv3lZ\nUNOoiXnDZ3fatfWO0NYXUPh6RXvjDZqm+1MIruYuo1ZTQ3HiPE4rhSy/oRpl\nKRsFMCQZeHiR8L0GBBSadmq1CVfRfCZtIBBghTPggTn5i0uWw019bDAACd6Z\nQc09\r\n=1aoh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpretor, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing `emotion` by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Navigate into that project directory:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"bcf66b9aec63f3498c353ecfd7ba8bbaf4f022c2","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.2.5-unifiedroutes.76+bcf66b9ae","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.1.3-unifiedroutes.76+bcf66b9ae","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.9","@graphql-tools/schema":"^6.0.9","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.7-unifiedroutes.76_1593115277998_0.4004769854333925","host":"s3://npm-registry-packages"}},"0.1.44":{"name":"gatsby-recipes","version":"0.1.44","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.44","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"fffabe439db35dff4994a867f2e1d7ed08ae0044","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.44.tgz","fileCount":178,"integrity":"sha512-GbHGDnbpDp7K/z73bcXs4TEzIrpIxY1kZV00gVn1ebiML8DtQNKqaMcZ8drLISxurJmLIw3MxGTM8UzEYB5ojw==","signatures":[{"sig":"MEMCH1CS7w/OsWRAuU14zYDxd5yk3CIOuveBt+BWFrcnjjUCIEmcauAXvL/CFiw4p19ttEhbfiaATUU6RZrxkbG+ZKnl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+jd0CRA9TVsSAnZWagAAHYAP/R2EVih6hLNBhrc9GpA1\nlxzspyZAyLmgTJue9ghQoamGB64GrMzkU3WNBMCdQQRZCTmT6Z8DQLdReR/y\nMp+zFBXihCeExZInUpQt/HbFdEFRW5eKHAEwn+MZKMpOOJSY0kcjDBs+engh\n/VCv2lMbBrFBDvH/oP52jtSsTOV8SPXfs6MUFTifvtMMLTLI3CVaetuqoI0K\nZBinBFghS+gXdBYewZZgEOESVzxuvdwem7fFY6sSnKyE0BcqXNYPaZFcsxEk\nfVitAITWypStGCXH/lVILFELP32RYh67/JDiUlzIVhY8JceynFN5cJv9ACMZ\nO+ki1mAzrl9lTgFNlbE2QNnL07FcgWu28IiGG+rOtJtBGoEl9U+1DqhkB6FW\nSkdtGLCzgAlVWBCz0Ffe3ejNuCLhsGP1C3kHAjPEG/d1GqkUfaGcwvA1dqus\n+WQJDzC1Zzrs9q7YLmwmXALSD4XIbgbAOQZhajDul6GeMXt21Z1mfDTryXnf\nLojmnpa5acnmMIos1SF3mXtQWLwEyiMauMIVTVxiHT7QThzybwiD/1Wtuf5F\nJjxX4gct5LdSTDFDth6OQHWyAe1FLTd/m3lv+0l8UkstgYuX5oJq6bS+ABML\nsVEV22eBVfXDbwrRPl/kUvn9TZfZ3s9AsJdw5ws+ss18SB2cvikrpDzPlwOh\niJbv\r\n=a3io\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"37976e7d758305f68abf478bdf322af57c2499cd","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.14","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.8","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.9","@graphql-tools/schema":"^6.0.9","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.44_1593456500072_0.37518826859407906","host":"s3://npm-registry-packages"}},"0.1.46":{"name":"gatsby-recipes","version":"0.1.46","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.46","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8ee8c446f10f8503665da0fbce928eaf898b7cfc","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.46.tgz","fileCount":178,"integrity":"sha512-gFwd7ZkXBK33D8qCQN2S5vQD3NvNOiZzxUCgenUHqyOCT9qtcw4ohz043p8pgji2/ZE0+mJ5ifsk4MYRSskHtg==","signatures":[{"sig":"MEUCIAF3ECJOVBBaSqBhvx9RhscgLKke3iGm5U83a2XGzT3vAiEAqnCWOI7yEE9O1fXreCnLiPNgmoOnenMvgpFAN3AuH7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":402969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/K/QCRA9TVsSAnZWagAAeRoQAJ25pdofwcQZHlnKjggq\nx6JvKo/3DUc0i5FLRxHIR7aHV9zJsIdGlIltxvLhoj+E1r8coEm5I9k7L7Cr\nyLWs68/5W6TPLQ5z4fCqnpO+8+fbah/R6+DutlMYgNWZQ8GnJylj09+T145G\ncfZofQELcJn4GeaylRjQHaTxV/S2rYnmLJQs8VwRq0ok6f9tpJdHqgye98Zv\nH4GhBztqBPZF4tpglQdrHQvQ/8mqa/7WwF35M3JoBS5XBLsTD5pesSTFK0rU\nltMPC7V+lbMk2hTzgGhKfjCxqBqW64F4afLAV47qvS2UoP/YKQGWEbrRibg3\nkioOf6+zlCBqJ4kkG3YsnR2YCJ56C83m73/G3FGX4dS0IOIBXi8CksMOJy4d\naKBOpy52xghRWetbNuzZObxmY/mhXgPb50ISrK0H5+V1d0zTqgglT/P26aqm\nqfIJUitjptV6owOM7N2omKHO0CruOKdJMI+irREU656kZNSUEk21UeNspbdP\nd07HZS7TvCOWy2EkV9WyxRilW2hwymIlK6hTfj/JD/ik6z2UO62y/yirV1mD\neBlkeJU3E18wsbI5HcXrpOqRXCgZDI5RztOac4EN5mjP266dtNzOIICMzQwZ\nmlTvg3bc7kh50g0j5MDFUn28Q+QhXDPEiA6fZIlhetejCUb6ulUg/zS02Bvx\nsMqn\r\n=RZMf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ed034d4e39e8990233ff6325db642f16aec65437","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.16","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.10","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.46_1593618384338_0.14993207241861728","host":"s3://npm-registry-packages"}},"0.1.47":{"name":"gatsby-recipes","version":"0.1.47","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.47","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d47f84607fdf214f291877c898a06ebb0d3c1d5b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.47.tgz","fileCount":178,"integrity":"sha512-SyT556SUyb+qO7WdUmOCtn4T3C0ceHFJ+RzI+B0JMLVey0NU2xU401TiKUFuX4mzbLQMVMpdQXuDNgW56xQ4kA==","signatures":[{"sig":"MEUCIQDvAMlEFfVYL7MOCB18HtOsj+SAADhkD8pGaxqho5ForQIgQrJpSVrQEnhcXzuhrckVc41ZoETBlo+8Pk538Rpbhjg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":403141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/ft4CRA9TVsSAnZWagAAq5AP/RdauRzXuGx2raNg9HlU\nIstn7Gmw08rE/PBG4ndj0QNW7PCiVGxhvDxk+M9UdR9e+F12ilS1MD7esYKL\nM1BFeamYgIlSfxO1Z3eslVKBpxWC0Z7Tv8MhS3872Syo0ekUfx0030mh1gwF\nA+NSMWm4or6SDY8zL+82Bv4Z31o3BoKlCpRf3vNYbxipl9tnypVEXbKf1AnK\na6mxrufVQGkJCrrENdZ0Um3x1WWChP5NBelLYLM9tgAftWKhO+0MyKG4bxK0\nxWHxwFZWR2YyQXzlOtvUagkllCMFcpSf1Uzkrxzk/B3K7csoqGs5IjUt4uV+\nYUkytS8kleV73T3LMbYTfTSkJ73BenD7pnh3enLh1FOba4SJeai5H2Samodn\n81V0xl0mKVzYEAKcf2bZJ4j+0+RlS9hg0l0IhnJUO16jsVpo+6DkZWswaLC2\nAzsoGXn+8eBBHS02R/J+SXPhWVrlwwQjT/4yhNRgJNp8R7j+SNlNAB0711BI\nc3R2lKKbfQ/ueHGllPd3G6/dzVQUfItcAqCGIzSz0tvRsPd4N0wPOjrUY38A\nmH4j9MZEjYbNldYDwQIcArLliC/6kVLGzc3Z7/OcBq0RdKtXqGXlhYqG5qhO\nJV1h0I09fxUHDf27+xSWxIjdjs9vOB1QLioCMY5Pcaotwb1NRlSxEF2dLG2X\njEiv\r\n=qVRX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e623913b2cf9a6fc2894b2c3bf0ebe0f6d8ecb1a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.10.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.17","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.11","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.47_1593703287660_0.9922743296033933","host":"s3://npm-registry-packages"}},"0.1.48":{"name":"gatsby-recipes","version":"0.1.48","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.48","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2bb8901932ef84186865cb5348fc3dfdbf9c9a4d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.48.tgz","fileCount":178,"integrity":"sha512-k+K/zgiyWG5wJ/gV19PmlJOjtnG8waouhCThCGfLkA+mDZLC2v/3KjzNgA+La6lPw5vjybO8ubBk29c0APaFUA==","signatures":[{"sig":"MEUCIQCVtWkQ9KYwM6jsOchdYhGMb19BmP1W69iY9Gfu/VmxvQIgYSyAFcM4boPqSUsegAy/Ium5aObbuFmkK59kz/G3OX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":403226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/kNzCRA9TVsSAnZWagAAuEcP/jpPbN38v/B2rsiMx1PF\nKMCmLNiwtixXOX7vPNAlko5BTgHP1QmnAy+4BoX5QeaOJvTv9DbKzos1PdVo\n7ZWPtJuTMSKDJm/W72TaImJ1cf4qM7dhUYut51BjC4aPQDgNxWFXzy0gSz15\nzaLD6+XnN6n3KXMp5kKzTkrwQ0uAO+No3/Q8X07VFQ3rTMJhWh0NZwgE3Jvk\nM25Z9uzW1FssTb6rOSYpZW7sjy0l9XkqwBGHjFO/j1aVT4ytOe59Nsv0gNOe\nI0gL9GtFtCrsQnCCbB/ni/3E4JNVxoHRrMWADRUJCktfSpG5SpIYxkFx7heh\nggTlM4hSR2kq60Yfpk/RZK84eIGWeKjlTi0vgv50z6dXq6BWr2zjQCtLxe4K\nHCsMX+tnIqqSoIROKnQBAcAvsGMVUVtadA4eI/BAIc/CO5TWlBZbwR5G191Z\nqICfCgfv7igsNb3Brz/YxW5W8mcrMWF39GqQr9VhevNT855wdBwt42AB2vUN\n8fwUlaTVxBkyBBkYU2c6Qsiur9f41oCrObzKBubMJeLKsujVW4jhywtDOafT\n7Wq6ErZfDywsZZQsVwtaZd0AGkvL1AIO2LUwmmPPsL8fwSKOihZGz2rd4wfo\n6LHsJt1YaPYftJtwfxBtAS8KX/Eh1f1ubE8o9/A5IJWPmVtsHtGjNrBBsCOW\neHHV\r\n=k+/I\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"6cf45884f8b53752d70accd0b96cae4548cf5f8c","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","is-blank":"^2.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","is-string":"^1.0.5","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.17","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.11","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.48_1593721715168_0.6623868757475471","host":"s3://npm-registry-packages"}},"0.1.49":{"name":"gatsby-recipes","version":"0.1.49","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.49","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7770b6ecd49748f726bdc1a59e44cbc83471a0b3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.49.tgz","fileCount":178,"integrity":"sha512-p+pRxZAlt6Kwfc8JolwkHu6O/QWDMMpDepS7a41N+H8CVju6EDNweMfvI1/hedcJ93nactUj6tsyxyyV/xMhFA==","signatures":[{"sig":"MEUCIQDoY3cp5bwl4fGhG/Mc90O+wI0x0v3geuwDR8PWXjBgcQIgJNFGz+K8qEIOBc/djuMfScvgPWhq2NwUhttVlyblZ8w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":403281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/wq0CRA9TVsSAnZWagAAIzsP/RzfcgIyGNmiD353HpbW\np0X5yEQWmfaf0Jh9gdgajDL9MXq/oOgyuWN7Gyi8fFvaI8EWwHX8wYAYxSwD\nyDXJ1z3EG4XKmaCS4bmlK9bgWiD79IJCe2vt3vCDSPt/5nwrq06+1Y+CR7F0\neEN2ho0uP1/vMvKY4aZy8C5a74FFYIdQvqEQuDFdeMDaQIwdHxpjpsiqVsv4\n4T26z/3XN1pEwIuRgst5VO/7THWq36MquEP7Xda+kNLenrDVN76nSwR29fKq\nRz3WpGqzmyMqpez3k/1XxUr//CC0CpamAhZcNNB38iWNnSDaq/EMyYN512HQ\n3wI+qoVbj7A102kO81y2hT3cLogUPoAk8enbsgFv+7TapADY1VEGPndjxwMl\nBtEop6geg+pmbZJ5DhUGRtl7yNgeWH8HHrokVlUf0CPWJs6ArH7qrEaw1Ahr\nmYOq4X0HLUPObXnuTUBuq9A4jviPmVEulP/I2mHBoNIgM7C+3AEDRCpYQhn2\nBcmmOx2SI0Jnrq8qTw7VQ9EXTiYO0cx7Zz0HgwXEa443NmFvb7pPSNqKxLV5\n/IwJmN1H7Ekxi0w3UC356fgZq0U1SLrGzmoMkxeDd+dD+KbXqBHh/bDR6wsO\nGaWGDQe6zV/hIzssGVU0OS5ozEEKuXgDLTHO3X0qGOQ7/Vi+xN5GKz0SAorP\neMms\r\n=Gmhs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"0049249e241597f60ccc05a2cb022103a850441a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.18","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.11","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.49_1593772724084_0.2571612696235206","host":"s3://npm-registry-packages"}},"0.1.50":{"name":"gatsby-recipes","version":"0.1.50","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.50","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1ef5cbf277ea62dfe8d415a438651530d5c7e8df","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.50.tgz","fileCount":178,"integrity":"sha512-z+a3a1g+zxZ1skYzLdhHJBQt02nfL+VIpGTXqryrvofA9V5cfZJ2INkgj6nebcB3atQjZxA33xq5GOwmOQi93Q==","signatures":[{"sig":"MEYCIQDitjVfWUNDqb4fgkKRFFrInOSwl0x06k5Up+Ng6c68SgIhAI6ADb0QA/VMUHtgqmCkZbVYX2RZhB/pvOw3jIN6UP6v","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":403506,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBD2aCRA9TVsSAnZWagAAXFMP/3YWshEMsxvcGQE79h9R\nGuWMTFHJ0YT3VZYvPPO0J/1qcMOYQEcCM/dNfv/IVtlFeu4CAsrhO+rQpT4o\nVA2O3VmqK7wBIj9TM51lt3Hw5AtwXUQpBJLqllSk5gVVBdlPGfHMyY7acHdV\nEIaR6ASsikQCGu8QpvhQOn/PqDXRjM2d3sGe2BP+M3ScgDYdQd2CL5BcgofN\nBMuCrdC3st+MJEanCorn3pMzHEFMHTDogDXAgKKO8PHPgEoNvxGPQJhGWTgz\nreXZLkstZJ5Kzix+5upxZj4rj3G6n09iK5ErHET8xlU9l9/v7wnywq/6ASqI\nZp4TnAbVzW2OvLEIMAOdRTam5NrnG/jLE1aP2DcWtRigf000EIL/7MgnbAnv\nbUprmu+blBFJ1C4ufpXik0a6lybXnA13cFlriHzSXRmvFWAkEPocPCnappg8\nqGjsP7qfi3Gmn25DZ6GECrF5/t7AkqCSRsyfffYbHkc1TvXX8ESHI3A1apYn\nEB1JoOx8Kl5LhQDyAogNWlD/deRVq0tiRem94QwFWB/lXX2vEpqHoOZ9908F\niCVz/G5/oe+8f5wQWc9G2F6qgDSIDBgOQIfQSmTZUYScyDuLpfR1w98h3xJ+\nY8w+qf+/AFalMfEvVUn6CYrWagPZp+gKMxRmkcdnwPZNKBgwVpDrf2tWm/vj\niDsA\r\n=aT7I\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"425fdac890ac5260edb7419635f97bec1e58871b","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.18","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.11","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.50_1594113434010_0.16777405211124696","host":"s3://npm-registry-packages"}},"0.1.51":{"name":"gatsby-recipes","version":"0.1.51","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.51","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6419070fe5ef1332670c5ed235bcddd25db0bcc2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.51.tgz","fileCount":180,"integrity":"sha512-SBbf5DEOEjJOKtJaXEokAuA1uR36MFbDixnbL8+npaAHQ70+9ExOziDW643yztb/X8JA0sq5y7SDxRwAE9acqA==","signatures":[{"sig":"MEUCIHaHFpg8le2B7doFzX06Upmlu5zWNYtrj7g0/0xL5uYSAiEA1Anum4Ixtsvtx2DfcT48z9Dkef/TLFURk6GCDDjtY00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":410767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBtcGCRA9TVsSAnZWagAAkrQQAJ/V4aqss/2L+d/+JRVC\nZVntq6XKb2BzqugyXcYkSKpbFBuoWpydPk+yStx5ma1hWOIRUIEO4sUq+mcI\nP4THfJ+hW8nULRZIkir04Pm+jUtRGqrD9s898ta/1CEJyjogP8C4CoSkESio\nwcMwjA7hKqOCa8aTE9T3KdclptXmumpJ3ta1aiyPdq+BdptqFoEj6fyGnH8m\nlt6Cd/EK254oAuJr6h6C14IXS/KSbrWLipoOK6dUdhJ1D7meIgO2ouPTrbtB\nNJ6B/rD2kyGEc7KHTdBGZWKL2DzwUMo0EsOXcK0ODg5VdpIQrowdGLV2xpH6\nuzYM6wd1l8MvCuzHuEECQaiLOAtFqjbw1piXSS5iMAzkDWLbUT+9DzV3r1l0\n7LAmlei+hCSWaeFiGe3alLZuuGO6ljBAsIKyat/T8CZWdC7E2tqKH1ogccM6\nvaGSisKPSwsQHjgzugSYBmevi78hrnbjbMJGtEtA63dkKK1a1C/izwI+zFFA\n/GMUDqphrIOd+n86Ci9MiqI5JvaJEolpIQLYwDgIDqktjVelCXAmiqYblTj1\nXbx5GijTTtCu26JWjaejQVjlaA4YHNI0eV44hSr3LWBE6NKD1ALMZLoUt2eK\nLluQLhloolNQJdSZXC4fOgeUXRivxoeZ7NeEJKY61p+nkz7UTJmjAkrOarDo\nilb/\r\n=LWKN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"960d523861b855c1fea45ceefe9cd01db760995b","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.19","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.51_1594283782346_0.16585289557677085","host":"s3://npm-registry-packages"}},"0.1.52":{"name":"gatsby-recipes","version":"0.1.52","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.52","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a2806d1a080d47ed4d3249704420a4e232860f6c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.52.tgz","fileCount":180,"integrity":"sha512-dxba6tO/VpTA5tPXcPuYDyatqEcT5O71eeRvT3vrEQQZzC0mwQzGG6m0BT1Hh1Z61b0LqFUh5trVCxTlFbEQSw==","signatures":[{"sig":"MEYCIQC4Vsc1i0klL9bRrwqYYtpP0i/G2MSALyWb9NUZPBotZAIhANtlu7N9950555sOrE+XRLqDuYlaFZFji/IK6OKomHFY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":410980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD0X8CRA9TVsSAnZWagAA0w0P/1P8I96B1ymDgAQu5bsz\noZFsWsWPqAivBrFfp4hX3XnixximMcXApI0HxO0uPTp5oRyGY2nyQWMXU9pC\nZlfyniG0MZLycmgpG/cTVjjfhuxTEPxh3EfC4emdEPUzK7VeMPj6zUawei0F\ni1t0yxfZ/EPZn6LijUMYIv3Q0YVCPLm3ojkxKVZIG3VhLoNZMuChHdm8Ak9s\nFKhvqVsbVSPQkG7njwYxcZpfdFOQBabGTc82d5P/3g2pLhmttdP6/D8YsepK\nYUvqh4rP9SGJYD+odXaXtWvBFlQMGaZBD0t43xgsY/SH5+AphxvvJwy2i0Mn\narR+NMvrOC8Eu3qaql1I1emGOOz8gduhoXWqhRaFgLFfSTMurZjUBciw5lNl\ntXkCNqkeMjUZrT5TU2pQxiEDrY8VcTHoqxoI/1dnwPzunxRqllne/uPkasd5\nLBbA6xadEDka646flDo7ZwVYTLcxQ/oHuDlXH4blg0EoDOYt/MT1mvi/3A57\n7sp1f0cxMDXrhq0/gtD3R+s3q/fJubZzQlFLd5jP0j+M+Zz6CnPsRE6s+wfn\nbwvbc6N0p2Tbv0SqnorlHe7enM5XbviNBKhPI9doRriBZnwwjnldOrZfoDoD\n0MWhG8PzWPdRO5+iRwyjnHQxNt+XA2gNE87RbAFMNwdMNYbhn001xBm1MF2j\nFUCi\r\n=vOdQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"0d236e382a5c7e1c0a583382cf2c82bd2ae23384","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.19","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.52_1594836475423_0.3305114833251417","host":"s3://npm-registry-packages"}},"0.1.53-telemetry-test.16127":{"name":"gatsby-recipes","version":"0.1.53-telemetry-test.16127","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.53-telemetry-test.16127","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"49e636ee6c509fcc51a26d324d33ebf82970abb4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.53-telemetry-test.16127.tgz","fileCount":180,"integrity":"sha512-aKQyaTzQTcXepdSJEMN77Or864NY7GAmH6gxEQ98Yj1dWu/bQkbmBYhB/8WjH41ML0pZZIwOnDlSELW3eiykOw==","signatures":[{"sig":"MEQCIFK0u5DZlBJL3OyItHH37vJ5NbFDPfWJ0pTul7Ek+kxgAiBldIYaacVACmHfaTPyd2kmzhKc+tYl2LsU4gLb7zJe5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFWfLCRA9TVsSAnZWagAAt4oQAJVSptFTqGY37UfI6I55\nK+LHZqdz1P2CBLCOYPXzOTKLh9Ww5SQavRZnHBJHGAVDqxo+x4h4VdoIpk6D\nOgfvX3GVdAwKsdA73fvNtuKs47FMatMvujgWTiMNYZ0/fzz8H6aAwRVdHHxV\n0E9bFBgGVAmj8HXBbKtdBN76b0AiPvEBmraKrTKGb/FBe5ZBA7uM5izEVpwe\nbdTx3VLC16+UCoTb1k/8t8sRbkofMJRC6JtT2ICQwCGkHYMEJNFN+BH2E0mT\ngE+yUUSorDJ1lO8yJG/qUJoXyCLlCqvLxI+bBZ0LeJKh6Gy2m/Q0De7282xZ\nOF58AtN75dXHQCLeea5A/tJRuHRzyfwpLwhYswE8qL4GVdPXR58yYjogSefQ\ncgHftsEEO79sJG07iyD83lBvfbxikT9lYPNBh/i/ZcJRHWy6ua4Motbeum8U\nWwt5gk6oXovFbOlqanemkaNDcB3vWpDuueLBw7cf+GYt4iDyNuSDkPxG+E+D\njb7rylhuyZn3dlLBCf57kbWeMrjmrjyuyKFkpokLkdC2wxZBsG+Ff2eEbndU\nkvT0zhMPZ31M88L6IeYYH60G8Nskx13VRO+E2pmNUssTRFNQqh49FAiaxseJ\nAVfftOmNGmrwc9bbftsIcP5/UGQkNPnsrsjekJLcb9mzobkycsn+QJrSgzgQ\noCZ3\r\n=Gw8y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"63acc674bc572a43114c75f9f80b328e74fd284e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.1.45-telemetry-test.3018+63acc674b","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.53-telemetry-test.16127_1595238347039_0.0775136210992986","host":"s3://npm-registry-packages"}},"0.1.53":{"name":"gatsby-recipes","version":"0.1.53","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.53","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b018ff3a5640d062e1ed0be321efd1fd71d5420b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.53.tgz","fileCount":180,"integrity":"sha512-q1dfVLUysncIOtOj9S1EQCL8TDUf3aM8Y4dEfvVYjmMMG58ad7sECSZOEQRjHKz3nJhxBCkJb9rEBKo62DvYYQ==","signatures":[{"sig":"MEUCICbjBXHgXKkX+I2wTlTRbL589e+aZrgx77jtWUF99HMiAiEAp09PPm9d8pHoTOCNuvn5vIadU6LTWTWQb002WK+9Qjs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFWmECRA9TVsSAnZWagAAf78P/j54hvlukuAzCyBxzEp4\nhm5ezHGe1PnwexC8ZjoiYpSx8Bq4e8eIL+tGTiX70zEd37T2A5axQZswHClE\nMk0xSNmlzEuZhNfWmFNRiHcLXc+ryoaWXvDX7I1oy4ZHFaCEc2qLP8N9FSM9\nUPYBwp69CNEl29eD4GoYZj3OVncdcfecQhtPz7m1BPyIcpWb0gFhFxOwlAyV\n5uj/XpuyWnstlCxJvRR159X5BzRaiSfyZxqYSLS5lroY+rsQ9xQo7Xm5O5W0\n1cCMJsFPZU6VJc3Hu7NY0adMTJsrREpsemut3jYoJcHhw4f59hKG55ubJ0ze\nFVga7i452VsJbWfm+2GytzQcW+2nhepfjvH74/LMk3sB6LiOOMR3MC3rdL2E\nbjS2gLJlO/9HBvvX6frMMhi9H2HUI+BhW0nIWfI7Yo4EYU1/PP3btrQqFLmd\n/XkCV4wb70LBCiAMKNDq+dy92P2meBVF0cVkuUSf5ep8YvARG7/WRopS2g0S\n6sNFFWRsmE/q8m8LbtHVu+Y/tJDaJ/2XGLTv6qSAYghPXO3mkaO+ePJHLchA\nF8ckPQ0V7+UoZZUgHXFux80LzPw+PhAOhwOu3Z6IqBsyxGMtzJ+TaGHjxc0o\n50bWaGMz/Qq5lJ0q5MbRdDjqOJvviBmwhy9u8861FXPhlU6kUDqmde4PgsR2\n0Im/\r\n=PHAJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"44e86fa027929929a334b711aa2b6e554e0306f0","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.20","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.53_1595238787614_0.9105960810051483","host":"s3://npm-registry-packages"}},"0.1.53-telemetry-test.16128":{"name":"gatsby-recipes","version":"0.1.53-telemetry-test.16128","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.53-telemetry-test.16128","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c8023423e1ce65fcd241d4b63738536ad3c2c3cd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.53-telemetry-test.16128.tgz","fileCount":180,"integrity":"sha512-DMqK107pJIlfBEgITDgx9p2PZX4wdWiDfNe/SPM3Pb8xEdtvK1F5kbKGSfBNut8ZonN7hP5ACv/Pc8ANH0i8XA==","signatures":[{"sig":"MEYCIQC1hxZSeSfVqurzmRkF0ofYWtbu2kQO4w0gK8pTTqy1pAIhAMEfHGoa90RkSkZbji/xvTFNVRVvYf6lbOarahZPEKvi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFWtoCRA9TVsSAnZWagAAef4QAJpoe/QyMsQ7S2sr9mEH\n3Nfkw4CVS4BhC4+S3gcT3M/f2xvxDqwTUPYAqhrOoDF3iGklKm7VLUekwkxr\nwb6nzB8cYT5OeUxxttx/G1dW/BeVXNKEMbp1Nc2kBclijOwpSyJA3NkdXMfL\n4y0FG7oSdIqkrnNMWlwsxWPBaUNqCza6vmX212szzJ8fLe8datNuR+qD1xXv\nyd2YK79rFl94uVQT3F0vEFf/PnpnoImJOnLqKJ/9IH8bC7Ushk8clSqSQMHX\nHEpWsOV2ZhD6hTkCRoAJaE4UMpEUFQyjckR0lE030LUYT0fMNvooNKeW95WH\nH1txh5y5ZxQeW0Yw01q/4q52p9HXB/syoStCdKHhEGt/EpcV7rT4qu7cXYGZ\nHkMuEagehluukhxhR3TQn76ps2h8mE5vqHm8OcFT/NNORyPY3T+em7ln2cA3\nTNEWBz7d6Re2OO9w030B/kBJ6tUu8Ojb5NvE6aAiR2Ft3lGY5PGOXrzOeVDy\n6czuV4u61Qowmq2LoK2XutDDhz61VI5RlPZxNiOJsUnjMcMC1sbW33P34KhW\nOaXmonTqyXEvkE8nCZ6HLWnxBPA35C/RfGMYYYEoumNYQ+3AuiseuhJ+px47\n1PQzuv9Ftuhn31FU1yjrxvRcV0pQM9tnrveKHQ3FQwYmSFoxu4vdTE/Ewybt\nDZ3k\r\n=FSim\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7ec17369409086f6aee859cbbfb124d1fd04dd78","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.1.45-telemetry-test.3019+7ec173694","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.53-telemetry-test.16128_1595239271600_0.9971234571703711","host":"s3://npm-registry-packages"}},"0.1.53-telemetry-test.16129":{"name":"gatsby-recipes","version":"0.1.53-telemetry-test.16129","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.53-telemetry-test.16129","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"365897ea0fe86fbe6646f8104da13c402287650f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.53-telemetry-test.16129.tgz","fileCount":180,"integrity":"sha512-N2EwMIRVrjLfUvz7FA8jIpjdzq0r3YWVWXn3/AZdEV61s+NnDqXh4bMQY+XQCIKtk4WvDzsI/XaoCwajaMFqQQ==","signatures":[{"sig":"MEQCIDFMN7UsARtF+TS9S1W8UvYIcR7dvFd+J4wngj+OMqV0AiABsp3YaYu65BHfEgvYBYBce6HdzcngoK7VPDe4Wte4dA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFX8LCRA9TVsSAnZWagAAhZMP/01E1pIEFjimLzoJDTZk\nJ0XvgTKR0nQSFgmQbyB0ZD81F4LIVbQE3Kiq+O7xjIGrcKd6bV1g3RE0seIz\nwOeTSjLkHcNOSOTJJpVXG5mFurJarIMbzp3iR3weIKOGGkb3cziaHZYK35yY\n1zUvwmaw8F9s7Al1TOMzrRMXOfUbul5tznSisVwSPNF9GylXhtlBFpAJAds6\n4CgP4OX+iTheoji/+McuWqPxZ/LUpxTcbv5TxUt6aEsFnczI2gteXRvpolyn\nVbaIbQqVjhijbYl58i6hNKEsaUg8oBI+roWraa5urLMNRTBY0tuCl808wMab\nCcr9H7AzKuasVl57qu+E/WzTsyu+1ohVS1Jq1udEyfXX9woSpKSvYZL67tgd\nav64DSugvVZ8ALcZ1ttyrM0G/I/dCWH2BrPaMIJIXJZZfEC/+wkOkAugRbtI\nAfS16hxloglVCPSKaEyr/EFklPQBAlIleNk40bgyHfZwKV8vzQv/+L7Uhmvo\nsK55FmCcjkKfMw+Q+DJN5j0u+rZi+e1QnLqbDnBiwjdxRc1/9N8pglGh/yoH\nbZfBPC02QL0B0/ynTq7LxUp8axb5SUt1hRekNtC1uglam6csUkK28w0FM5jp\nmUZU4/6FS+dhYc1FYo3ejhJCOQwhm7Yapv8MKFBneYdgq/jxKQDy0P6N1jDK\n31zY\r\n=8Y9Q\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"25b2f9fc1d121ba410c0fc52bd870bf1a9763bf0","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.1.45-telemetry-test.3020+25b2f9fc1","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.53-telemetry-test.16129_1595244299092_0.6853556255381195","host":"s3://npm-registry-packages"}},"0.1.53-telemetry-test.16131":{"name":"gatsby-recipes","version":"0.1.53-telemetry-test.16131","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.53-telemetry-test.16131","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"811c6b99dd69661bb29b3ac4a7f802e7f57c0313","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.53-telemetry-test.16131.tgz","fileCount":180,"integrity":"sha512-U/BCjdy7lG3mLZ7zT7ir6SLH9raSTnpYn5mawphj2RJSMSKPXBPFMioRKL0BdOlvuKQ72Q2X03zdVRky3ndadQ==","signatures":[{"sig":"MEUCIA1OK/0Fk7JGwlKvAbpR+2ZebWU5e69m3TgmmCk/O9PhAiEAj2j4XhnZsqQnp/hf6ro7wRgRyKT1/gezSLh0PwFEyHs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFYdiCRA9TVsSAnZWagAAb5kQAJ4ZBhFNaGRlPD/HfQL/\nzfYF2X5zfncy+PxoqAlkDu6kDYfU1RfVLfEbSTSaeWQkDQfsy5u0qxgHB4HE\n3lWbExgAGhwMmGL0t4e3fb8jAqWYvo4bYCOfl/tJnj3ZPdT51U7b+iYG8syF\nxbRexPH1AEL+mMruSFNZozGpndIxInbLJN1r/XCn1M85H0nnKmgJzUpcUT6S\nPp5b7albNaMgw2TetHamHI5o/o7AUDc3+gcutlkuwRjcyCRwFbifdXPrvYM2\nGACXWLoAp43TG9lsSonKDWf70o2bx+VWn2YUBPe/nzkKk7FBpSBoQAPiws5n\nVUSW/m3ektc3llbvKxUE1M9imMSvo8DOcCieVLLKYigXyOw1OhT1Gl101mGH\nVmE+r6hjMI8vUUHwWyeFCeXu6qpmIZc5FlXEdB+vT6v6/3OuEvgcxviEKUbg\nN2V6pIZpBw1a78KK0h2oiHzt0qiEZV2MUYoTC4zWUkFDlRYGQ0jzoATksqS0\nPswuqcIokbL2RRUeoofVU7l+SaDifkyJ3LHayPY69YPOBGnZjp+Yl8vOmlBh\neCeX+VjvS4m0X8Xpjh7lv0ub14vjcdOVLD4mceGXY6K+gCEAmGTQ5CKzT2sv\n2DowrEbqEDhYO48MiBF88LOQFH15GGqcpHRc4l6dAuse4E+jIcRU5cP2qcZm\nvzNY\r\n=g876\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3e66ece34172f13bb07061066e62b3b6aa7753cb","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.1.45-telemetry-test.3022+3e66ece34","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.53-telemetry-test.16131_1595246433884_0.2800722403310414","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.17":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.17","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.17","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"186be2e3e82eb410f8eef359a4363e6d6f5707f6","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.17.tgz","fileCount":180,"integrity":"sha512-23nYJlmqJ8c036zHFYDzGf9PWHUMXSKBmn8J0DA6KK1jjqJZnD5/2z2i9JjJiU9xu8sGWJsXK7WzOi4WHkALrA==","signatures":[{"sig":"MEYCIQC5rSfzYvo+X4c4Fs73N9RslN/KPjGVLsXI4A62aouNeQIhAPoWQP1scpCUkDduxag8HBYlYmGw022+si5qPf8vLjrd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFZkUCRA9TVsSAnZWagAAev4QAKKTRBYgbiijFJkEHzJB\nz91mAGUS0WWHMY8F2elluZ25NIMjfmHNPj4yUVh6c1eoxWXDCjgEXtImjl2Q\n64MXc8uFazjXHSp0p+fPqA7Z2xQtz+FFFvBEtNUVIcsC41rr5hHzSooC8tu/\nN88frfyG5tn/0lXfUQc0y2Epeit4LhEprSV6miqjVQNVYy9OhVGSixghWoeu\n36VCz61pZkxd7VrWFQyUXo5OxJSRn/zZwnSwCuSdU+9/QRdm8OmdMC4YVCu8\nc1V12Q5ADDhi9vwMjxMcuGioHjp1mMtdBHDF04GAjUUeYditwHtVC+k7XAkQ\nYtkW/B0ub/uisHQyQT3R9PGEMRFE4fCjsXodqrnqcMVCRLMmpEja0fae/sz2\nQ33P+5zZEpQ3iY9vD/m5e+h3IuWnWzMTqCy2s/sN2AKR/amH3vRuscWObhlD\nLSoqDDDuAGsdC69/KxV6ZmDui29VcQ/q2MApI9OecxH9bqixjoUv23n80pRb\nzR+mj9uRNDLib5JN9OaD/kcJywpvhlsuw3EAfynEhanLCChCtUxAykI3zH4T\nxEXxpl1OqHminRi26nz+FK2JAbxybniGFYOXb7VUf/znwgzuCKQhRTq1+p/X\nOrucoy6b/BQRJgBER/rJEjr657TWFzKYT8vMsdk3F4ItalLlDh5H2cKCRXGu\n/exB\r\n=mFGm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1bc19c14e168432951f1b8aad939adc37fb0be44","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.17+1bc19c14e","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13-telemetry-test.118+1bc19c14e","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.17_1595250963652_0.20618382491619247","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.18":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.18","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.18","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c3d782014c41bba0c1553a4ce420734bf3b71b95","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.18.tgz","fileCount":180,"integrity":"sha512-DCZyBVc8YxM1bWpSDwHSLI+/bfYL1FpGYEpkFCnfuVMpx5HTCKx4NJ4V+0/Db1ik9SUF35dHlsYg+isO/mh+3Q==","signatures":[{"sig":"MEUCIQCl5sk/eC4l4d56NJ00y5mWA8kpoBcRzkLgn7hoysLklwIgatKYT3xK93766vcJsiBwwzkzX+dOg698NPoDqOzPwmM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFbiGCRA9TVsSAnZWagAA9W8P/iP/L9t+GlnLwEsTjbek\n4kk65Rz8rkGhikDzCdrFuDv0JAGOi9haYTeKw8K4iV+DU9Cc6nikGEL418iI\nqe3ki4zrpq3X3bZWda6UtjFBRlC/WWAAgC+cP6s3XV35dY1qkgLi1DRFOKK6\n1qKao7NT5DR2RDg9giED8hZMjKCzImGQ/wAxCszFIMafPqnVIfGtGdFVBJfB\nmUuGCqtrjFMVQeAibw7zFuWapoBrlT+c9o2/5q28isuyNP/Oh2PYV84je7lp\nwTGYKU6rM8i0F1nGkUBMrfK/yE7GXAQlrJ5lmgowISqrBpO2GohxfcP4x2E3\nHGkabOsCczRCnr1kkfzINRAzZbJlr2wbWFYqL3EXtGPsB39OWejtixse2bTN\nOaF6oECjYQvxnDi0DM+TFCjhEPxn7Yggi8zvt+Zgk7O8zsCo7viIgp9Dnw5l\n4CoEtzRRaZkN5Y0dRIN9Czjsgsd0bpgg3UbaFkUu11evauqJhfzZD0iJYJhl\nQRy4CLELE65ghzZK8VhxdrSiRFPGo/Nvi6Nd40Owa5I+LLRUG3Z0XS5jPZuS\nON14Wm4D7cLWiPouDe8YZwxupUGWvlRRo0BgBxukSk2Mrb454gsLgfUT8KFa\nbI7d9GBKUig2S/P2D42dbD6D9viR4SKsw9bkHO+rdHoR4EyyJL6j0pl/NSzO\nI3Ba\r\n=xs+u\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"022e1894ad1051077d93f9644cd53f6710b6cf43","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.16.3+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.18+022e1894a","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13-telemetry-test.119+022e1894a","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.18_1595259014199_0.29142729986172466","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.19":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.19","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.19","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a9b1c5c167258f28c86f088d408e8d96297267ed","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.19.tgz","fileCount":180,"integrity":"sha512-oRrj6eaadwS/6rWoz6ShrsWD1LGsUXSKjQE5osnGhMNzhs+2gskCvoLrpBMxEpdkKU4JcJN6FTcrm/xvfACmQA==","signatures":[{"sig":"MEUCIBfeXzUuxkmNxiC1KAWMNucteQaqkU7D+yxoBQlyGQnoAiEAoeB/4EgVlaO5WFtjZ7F07ByvTqgvazT8DP7bmPhkJ6g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFcoMCRA9TVsSAnZWagAACooQAIKvpeuqj12yYkgSjRuQ\nzKXiRY72DAsIHaRfSsNdFRfo54gAZVF5hLLVKmwcKUiJE06yD58dLCz/n+9l\nKE2O73LhAHN7RBZctUUgv+SdF7OtEAafrxPN+Jj9MnLpVgSV257Dn4Eh64jf\nHLCM4h6OaBJDks7PQQKXy7rTucrguKAoMwQSwvHVXMwvgFN0FdcnlmcTT2jq\ndgnFtJtnum14wZlFQCJTQ3023dPLdIciT6Pv0FfcyIc9beA9PVFeM7rNDLfY\npi4ocOjzFGJNAooPaDAFEwvLLD1YfndIqrkpDd4TmzpLGDDspl1ENmzo/gAf\n66Q3EHfNEaQs93g+oXeRAex9oopLGJaZFRrNanPAjdoLxmQcg5xInDll1kr+\nsN4yXC4Hw5SnjF96xpOpSKyFmroLH8yrEIe7g0crollt2iyBkRijQYeWwPAV\n+FefT2WDaJvpRFi2bisJUCE7kgvtVxzux6FS0QtpriWRHHU9XpStCoFDET3m\nKwtMRWtFfedXS/3u9MGcFQdB8HKX1PijBGbwmNFKqDHx2wYXPam3MAVFqmEm\nw3DWFK15OTCM38LPIJ6EnqF3oSPU4XW7WkvNgqOoT91r792u1MX9j88QBKmZ\nIepA3wJcu+Wzang/FdIm9eAi61Jl7tzF5igwEvK7iZnFuMM7cA230+3E876w\nMaLd\r\n=SxYf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"d8d727ce63112611e42272d5167199465ddee072","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.19+d8d727ce6","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.19_1595263499893_0.41361864642980617","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.20":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.20","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.20","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f9e9e6f17023289fb27e8b44de28e58a8d98392e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.20.tgz","fileCount":180,"integrity":"sha512-nzoJeM7S+Hur7fKS753w5McBqJOFGtUc+llzDKmJwobNqM19EB9b0hWnlgKvNlN78cqi6p8/ZRoT/K2EIPLoKg==","signatures":[{"sig":"MEUCIQDNb2eP0om5uZJ0x90GX5s9RdPAxLN83kelXJVmtZZn3gIgayQyY10TXQMQMXdIDfkziJFtg7d8K8pBALKV/iiJrYk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFcwXCRA9TVsSAnZWagAA4a8P/1rHtgtyLnnumHqpk6gL\ndzKoy5rDUDmAUYOuAEEwVQSsVvOsL++HJbe2EdWFBiktI8AHk8CoTk+cM/Xi\neWpqCGYtezSSMgRZ0mvoon0Tv3mNHqA/PULkY96tMm8gJByq4wRfBnfwuGzE\nFV6b7EAUwGFDMfn4Bjn693BUrgOWB+JACR86i6UHBBs+8dlQ22SwoZ/uTRfP\naQPKh+vyuzy81TehkiJ5J+cw11ZQ+sGUkSsVHW/eFRhyAUMVHhOqrDO2B2aD\nLXHsZYbK21Glpsfo+lZeOuzMmPjyPHHFrClDFi9/P/zaCGvLhy515bwca/x9\n8X+N27e2tUupzmtNTfj+i55WNC1CYgUvF2YHzLFjpgROHLg1dvk4+c70P/mS\nqjR2BDVEHiaQ+v+GUWAKGEmgzNCitSnPPzRO4YB1R7qG89aj+mfAFsSyA7ND\niqrl+EtsJAQhInsJCHxHqyyM371RjcDpNR2YTxYjEiZ8yGq2bPMivm5njP58\n2PuzbZVPF8ZbfdoRt/uync/pDwP90GGhltPlZOb+bwpZGkvVCmN7HwO2kCAf\nfzsu1u+crUWrlYhIvmHgsGBHC+LGeE17aqtgJzrvQQW/TUad6h+rDSCDcOx1\nB3qjb5IjCGoS7iQAvEQbUYWrGHsOtN7EeTqrF8RM3+A601Xjh2iDBp4O8uk6\n3Bm9\r\n=7NE1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"670ac8ddb055745847f2c358cfb9e9580bcac94e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.20+670ac8ddb","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.20_1595264018074_0.507702878921233","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.30":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.30","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.30","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"207632ad7d78c7e3cb80792b6e569bd3749ef63c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.30.tgz","fileCount":180,"integrity":"sha512-KV81tzTD7BKWnxwJ952CjBLL64Hu9e6SiOno0nowqpL7quZPT8fmtWE7lZ4SqfdrcSfDzDyeP5VS6LDPHK96dw==","signatures":[{"sig":"MEYCIQCLFuZ4Z/v8nJCn408tDZn1C+2W/0R4psrnqP0tnGqccwIhANt8tmU9mY1c2z7e4Rc/WcCy45SgI1FouWsUT8YW9oyt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFr7NCRA9TVsSAnZWagAAxdwP/jfja58b3Eslr9mBYjtE\n/VRuRz5ScoHLHnDi+nvDLhzf7o+9Jh87LWxpoUUwB5wH0QO35fu5+ZgBFb1E\nNoBWwZ4Ym/EiqlK2KN0IAr7g2xJdClIV8UNXseuxQGzkN705O78B6BINmpDj\nuhVVXRf9E6kTJLYM4vLqFpniOf8cBJfttkpjapK4ee007yErDSYJZRaCcpkA\nJc1r0E2MpgBNQXI9W021AtTX3EMntP7zKQ6gO9o0qmc4ICfmSljkXJIW0nDF\nXhuyge/VTXB9IwgYAti+EGphQ8dBXLra7/RpG95lzvKPMRInnbsc1uE41EK5\nZYGMbl09pKkbbT7WwVp39d0CauZjQtQhL8JxYZqx3Smgo4bJYXv4qU4FLGAA\nF/Y5hHT64XIBt2+4B+cJPLw6oHTs/lqDZ4I8OUBTdR0Q9Vo+arLJIOhRYwNF\nzZ4sb1RNB99a7xIbZ/QLllFPMgr/Job4q8Z0oKryu5ILicHYyFhZRrjKbP0b\n+Lrutz64bUfQyvusIOGJND5/PWqAVYjkzq7M26sgoYgUjU5dinWZoVrxBo4v\nElp8GfCns1hQOehk1Vt7w9bfAVVcDPv3peFpXoQZg1MQqIM5I5HtiFkf/fjN\nVcnyfzjl8TzDMEQwmAhioVX6ve9eQ0GOmoOWv2liyE5coDQWYR9DIYbWko/C\nItAj\r\n=tg7q\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"32be501800d33b1c74ad9c178c47cf0a258c02d1","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.30+32be50180","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.30_1595326156772_0.4913666917848776","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.31":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.31","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.31","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d3776832ab2408662fdc0d0ed1c86dc41eb9b918","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.31.tgz","fileCount":180,"integrity":"sha512-llxpRGOvvtMtyiChufNAlTfVUBezBB0jGlWJ9Dg6VHqaYsi2xPVEuXEjiaImwBiA9cxWzoLW79gBbJalqCICFw==","signatures":[{"sig":"MEYCIQCTENqh7BASXI9Ue/Z9ygiHpSNyvDSiqaxW3NYH+yE/ZAIhANt1FuzM/tfNUptknb1witOrR6AOpzmnffP6M27/nMJQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFsFrCRA9TVsSAnZWagAA+b0P/j7IMTnGokb4MVJ/xX6Z\n+8byAvRsTlSJt2fUV6mQPlyRehSNWe4ssfR8DZm7XK2iSwZX10uEZABzjfeu\n50kVli6Sc7C/P9DWWd6UlR8DD4PX30xexjAPpB0q50MwJp7I4bZhcaPlS2l5\nyZ6USxtgMQjqbTH4tJuYmJ4xE40+mk0MblZBfzhfhL+Hs1JCFBCZSfnYwjGD\nWjHRXiAy0QkBELzEhl4TcgHY7HI64p1kLa0viFfKYon1K4+yUsD7IRMX40oK\nsqYakzMO1FOcmojdcJyjU4GbgFPK3QidZWXp27f9Mh4/9oHQxLrgALOy6pX+\nQrKn7XMJO5vSZHiaXzXTo3z+DWTjqPp9j1JXgRHcrDvFhjn4uNDKCrOOuzFA\nBCHWlxvk4BL4uDkwniTErX6MUf2hiNahFo1XM7j6yWG3COCLYe4fKi0Qyl5P\nT/GTueAOLM62aJkJ6VLIiZMvrrTmexlqQYU26Xk+e5BIhlxkzqa+EPYUURqp\nTMNJJB54bsxN5wkyJuk1cmxUdTnds/thcM8enuwR1aI0tATlpbb7QLWLjgVj\na7r/W5ssV0s7+C6bSEbz30Ng48/jjVVtUREwRzXDFH6KDSLft1ouwkNTkAzr\nMOxV8eXpVs4VsGna2VPmloODMRG8jzWeBVcNVjSsvNDnZWyENYXIfeFof6Lw\njCZg\r\n=qja4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1301734401ca906574aed90cd07cb16bc1b859c0","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.31+130173440","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13-telemetry-test.132+130173440","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.31_1595326826926_0.6368006339800758","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.35":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.35","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.35","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"01b9c089edfa27121b07c12cdab5b26b460b6279","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.35.tgz","fileCount":180,"integrity":"sha512-uCJDfiQlcUmb1luTnH9f2ER3ry1KSurG+CQwL6AQywtiiWMlFRrlkUSes9SeiSOkBP167naRKjzcqRJDn9F8uA==","signatures":[{"sig":"MEUCIQCHoCyO5vDB9fS5v0evvbUKGP+hjBi6k1XkaOe46HzZUgIgVu3nYFa9pXnWKXpSh86ok8KQA0R1Jc8K+tJ8KWHoq04=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFs/YCRA9TVsSAnZWagAABc0QAIf8pmfIxIvhJfpejm4e\nwmmjbxPFGptLYPFSHRr06GlpTwRou0RV3O/D+7kKhu6o3R742V5lO8KZK9gp\neibVtFH5k5BnaCHD1LBizyNeVf3vZJ8941qjofRb4bcstvXpHJlZ1c11buR3\nZID+LLdb0sBGpb8j+74lcg7s7N8m2+MwCXP7W4YaS7o8MYxkdsD1bv8p3BYI\nF+dgAHkaJgXL+L+yYDEm1W/6sxAz9PT/wIIrTGIStHVaW3hk118d19q1EXn4\n0mWg9lo5fH0Nzt/2qEt23CDwABYeDaocMI2GXNTuo4Ru14yjTWYTxLzQrNAp\nk54mRb8nLlCSZztyQPg+ZG3nx3SWzPIpnSTO9Z82er8FMeSm7cpM6FweB/UV\nXsE2se83NskYPJSQ73C4VD19hBDCntUHi9bDYYhBiW/wH/EjEPY74k3C7jv2\nrbCbdSsKaHy+sDokURqHCayFdPK2BnaCc09U2KGH86gKx5Dl8AOHPA9Cq38Y\nVB5Pr/rae3yRkevysij4J6lU42ReM7kEnJ2pOY5VEkE60YipfJBW+GJTnb/S\nFwwWcasnrDNXfT0qY4t0vC7N0hLxblwvBVEeIAbVHxlHDZ63NxH7lnD3X7Ue\nPqCRP/ga+mLauW2quTZ8Wal4F94tKpVPRgb7T2y9/Q/jt7sIwYYK8KJk+Qb0\nKdF0\r\n=GdzO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ddc5c80674fb12e0be8231c27ed342e6c7af4166","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.35+ddc5c8067","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.35_1595330519921_0.9578136302546709","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.36":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.36","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.36","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7dbecaa317b1dfd7091df21462ce14992e4d3241","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.36.tgz","fileCount":180,"integrity":"sha512-r0V/vJqAaPfwcm5ruAL3u7iHwZGNvkuz+bW6eV5Akvp8ZijY2EC6u9gjLP3SOV5vfURrq4EfC1F284oDMwLVbQ==","signatures":[{"sig":"MEYCIQDO+jtaPpnMcgS4WMAOsq7qsM7gxMjFjxijfYp3WNJ69AIhAOKAG0ZEq0capZFv2kGNYDM9WTptjVXAftd0FfXqbxG3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtF3CRA9TVsSAnZWagAA1qYP/0HwjtMRJ0MsAHlSyUVl\nv6OOzarlg1cIurdYM5Wh/MKX1fNj1JPf79t5ql80rIqbn7x42FOqFil2MsNZ\n/+D3Rrx0gw5mXb3vfQoNuV0M30BZD+SJhVfXwwX/UEAm59LQvxsI7ZeqqoDs\nyrmNJKYJKlEn/7TFZLVRl/pORWrS6sdMgSS0xVS7+EaXmzpbC1ZZOCfmpQjS\n704km8Nybf89eB39VsTqjWKm+ssx8QeeIRXOC0QAXenkdPy0hLVEXigAMADF\n42SD0WTjXcwZKmtfLKV7NKO3irY3iKyL4lhnSo7jpuR13SBjC3fHDisfDv6t\nw9VhAaLfvu058/uMr0vk6QYU8vNsEVrEBOd152enkSnUXbECmzYkV92ZM+X1\nT61+ofxuydXvYPYIiDho3SmH/i0A1MYRh3aY73A0+1hHOiIDugpmJQNeQ20h\nb9OiQYgio3wsmpxPBz7T1ALDWQfQuEs86P8GBvrik3Pf8DKETZDoSBt7faTU\ntBJOM9+X4r6CgVZiNadth8R75DEAYDq1A4eQWZ6t1Uwz4FZ2zZ9P0ogM9gWd\nG1e4yxiip0T1U1Jt2VByoxhNV1y94NVSuPm/KPPvrwx/9UsjTl2wcEglyIA3\nla+f/35Iz00hKvLggOZxpO+c1gC4mZstjGQyK8gyw6oBc3V/AVQS9uXU9cae\njtqH\r\n=W3Dx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1194c6e905c11ae664cc0fac5fc610e7f332f772","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.36+1194c6e90","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.36_1595330935096_0.6998248093714361","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.37":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.37","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.37","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b69d76946b2a77d7a5d54afd24e7c65b6dc08c9b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.37.tgz","fileCount":180,"integrity":"sha512-QoWlMChd0Rkg0h8rlBfvDxObSPK42HQ8I33jpWGylqgwkX/pQpsj8IWBCG62WReZgvm5xYs3KWlzfTDR15BnWQ==","signatures":[{"sig":"MEQCIGFm0aHYNBlYTnEcgivRscjBVx/ss91EYNsvnACGA/YGAiBx+2HqUST988//t+pDqHjtlp8BotrCsgdCMBqQu7tO3Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtKVCRA9TVsSAnZWagAAGEAQAIOjSPTFDfcqzr05eVS6\ns7KhbmGEiUzeBqJC5/iQVz30SpT2KsadPm4gdwOJkwxXA+2DYBmaJhFrSRK4\nH+FokeT/joyja64XQMNqZ1UMdmprd8DC6m8J/HAmdM9IyguQAya1s0wGl1CC\n2HOl+cWbEYZ8hxUZD2wI9P4TZ53V/OIH7E2vOrRyb9eUeYCdlPIdO4y1BuwO\ni6D2nVslh6HKmEaK9ktrg8WY36IsTB0ZrDqQkbuL+qY7EmfjLG7OTBxjzAkm\nsY73g27pF3kDgl1Zjs6tnUOBZMYU8ErRNkdxiZjzB499/NuGQHIVOtjMORRy\n2mV+wcH0rlJH8O5D6mYMjZqFx9CM6V+8dXpC9/B2aPnQt0wsb+rvVK+zrhPZ\nM97JNIRnErVM+BBx7LsE9wRlghLBccRwsNKbQw8gAnayu+uzneO5R3cwKI+X\ny+h4FiuG1pqJNa9n5FWKcLCeUMadHaU4LfJiB6K6YRVcA6qRO9PLw+8XHvgo\nMsduvJcBX/xzxrhHfL0LL8Wko6ZMDpLA3g+9qs0dfq1yOV5KehoDJjnYs2rw\naJRhY0bphJI0MGj8BLGnienv91CZZ8+In+4vY2uogriUX2zTz2liwHCmxSNi\nRONw23ZimHxYH6/VtY2jjTiV0Gbd2QUdY1Bz0sUigqMWdmWace3xTtui1Vqv\nXwsn\r\n=enzZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"6aa591fb7c8cf5be723dda60ffafff47dd20d3e7","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.37+6aa591fb7","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.37_1595331221017_0.5667607730370869","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.38":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.38","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.38","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3acde1de4b8c4a7e75c4be80f7a7f1271ed55282","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.38.tgz","fileCount":180,"integrity":"sha512-Yes/3un+TBBtIAZtsjhC51lxnSxoqH5RmgkK6V/C8KJowMXUOeMoihQO6H31mEH92lygQtCBmVnNU7O62QDjBQ==","signatures":[{"sig":"MEUCIFJWoXG4Y7cJETRlAfAg+6/ulLMw07aVoUP1Kp3s+6xEAiEA4gxGvZVv6GD9LOFRC3A770sWNriAIg+QU32Uuro4fxM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtRvCRA9TVsSAnZWagAAa30QAJy91d19Br1w9+Rd7lM5\nQB+t/0wdkn89Iahz3Y63Imt/jOiYtfMNrksZ9b0rZeav5iJcMLKqcEpqXn1Z\n2CRaJLcZnLkfSEpFp0RhjcwKXkyOLtntLdQTJugkTcrsHnywmNPSwAE3WoaC\nAR638mEq/LHqF1VJUYD9nlNaT2vJygusIOaHWAIXS6+jd90YvLNZ/nQh3S/T\n3/ZHQ3bvC7fvpgAfHC7owCV7ZQbMIEz3uR5xF6Z/f26KTGe9VXrliMgIJ7nT\nLolSbyA7i7ZPGZrBKo03lmksziE49soc0OWwvxE5vhdh2FulQ2oLCL42O5Ld\n0BkxBl8DYqZ55MM3Gz8cofGy7R+QWaYcx+cVob6oSsLkRrmW9UOqzurOZcC/\nBohWCtGjxe/ZPaHwtoBowBRo8uGiSrmN7fYDRjNFb2Ztw4tDXTvBVVaOSTHM\ndPCyX/RiQSRGufqOsKdpmBzR9EhAp1tc1K4yDYz+hCqtiYKTh7PGVoJdHIXb\nQcvH2bQrBJQ95DBQ4uzGcw4ZU8nGlKRjckNjpeLXZo8Xnm/UUxgCKyMEMrzi\n0G9nTRBML1bDYvxI6jBYyUDv+SNv1MPAKaNkF7bf8im9qH1DFpv9jh0vQTFx\nEK0F4Zsxkupqw2rqQfmA8NCERoxQyPmB9Ntx1T8ZSKLmb1P5C9hMb5qvkmLN\njl0i\r\n=otUD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"10f35914d2609bb5515cf33799801da59f3a9b5d","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.38+10f35914d","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.38_1595331694912_0.9719679794088247","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.39":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.39","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.39","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"eb5ab3f2a3ab4aae8e0a61c557552ce6e0a21e38","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.39.tgz","fileCount":180,"integrity":"sha512-vKCzyaR4sEgG2KDME3cxsObv/3SIn/VuQ57coJqbHRHF4Vwc/T2T/KUo7cfKRG1DdtrexBOguK28qO7Iry0Eug==","signatures":[{"sig":"MEUCIB3q6aDGvztGEywZl5PTIYtmoBj6oFjgr91nlAvAQ1C1AiEA9aiZ0QT76GaJVk5u4QKQ/5CLy8OglzbXBw7l2LUDCas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtW1CRA9TVsSAnZWagAA5ZEP/0joige/z+6ohFuVbINP\nZ5norhe5G5vKRvoR+phXkR+CGaqqKvc4hSwxOXlHZTTycwP+hTj0gafUJNl+\n7YNAWTD7lW58UDU1WWMNDqPH94ogaZIgCuV5HDJMZBEaeVT8Xb55oIm54ak8\nry6XuNhF3Ujfeak2MntbGuOEr7YidrP9Uhp1s4rFehTtFgWevWiXwtIDhUsW\nkF6Bsuo9vGpUqw4q4yuXHV8+U9ZMZ1k/LoyiFQQFOnZkyQRuz5L2qVzRBmlL\nlK15T7jDwB4qKSd8cjybuFfNod6dJOzxm90T1qrI/aoXLPmRIy9qgfKBFjNq\nPbRdPsqjB6ewvrJzD1fQqmZNyAsEEs/yNe3nxb4Muop+0jeora+qxgvWSQpO\nNCSOFCT0HndAG3YITL2VKRh2t4YZuLk7B3B70vK90XVtGOFy73gq16smKPw8\nV++lbabECM5OW4MDAdpAOWsWZvDwOuXE0Zj15eS2SIN1Y6uGLqMytMmkqUqT\nr+G7wrT/Dpg6JnwmTGgIKKn6Lmr5ReToh/e+2ufZx4z+NDSeIPsWppaWZp4B\nXdnXjHelHySsCpA/iXVIINivY3xohkgGaP+Cd6W/QeJhVSS9c3ckdf9THFAe\n1KQQHEoeHsG01WVaIPAcUDcu/sNvyeN9wukj/2t9YR5ZNRtOmMsUipTN+cS7\nP5FL\r\n=D5zr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"df27ff75483fd28c7a775ba558e7cd0b1d7916ce","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.39+df27ff754","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.39_1595332020939_0.5913457378484654","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.40":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.40","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.40","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0f6e05baa53b2fde2c30906d780f006bcdf4a9bd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.40.tgz","fileCount":180,"integrity":"sha512-5BTTgXIZa51SklrIqIUAF7LwjxqQjU7zKMngrIE5RSlRPSdamPHOLL4KfKJIewfsq5Bc9BjNaiF1BXJ7S5OStQ==","signatures":[{"sig":"MEYCIQDAcNshxu4NhjdtYRcTH7bhaTOSarZoOiEke10+/MmM9gIhAJfJwc+BPxhkLpgJpXJbaG9HBLGfzMa3+i5IgIdo1+9e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtbiCRA9TVsSAnZWagAAIC4P+gJ0AswhvOKCgUZxsZqm\ne2mzfbPBS9Or+5w348BaFR+rYsyNKW+zNz7/v4pz1mDVapWVXvXGTkwcuTqQ\nz1URqIkOh8OXr2Bymblf9kGT9JID2oKw6G8idhrtFQX2YoKGxwH0nrndg2mL\nvFTojL5zlMQE2NA+aqDfdUkAEG+X3MAnDbVMGQpGUqEGR0cY65KPCC3QTnLB\ngXiA8lQZ8l0COOB6TgwKVmPdaJlqLwMe3MIjUiqe1b3QUkb/uMnsNpVxolmW\nz+8siZE/ppm8IAsyw4uZpeBP7j9Cp01836uMsG4a4icItnyrErupG4d/OaPs\n2WLD1iIJXMQ/iuwODk00X0TL0KqOVqMaehWYiSmQ6qGuAtGvqSJVNZegMLet\nBXYjKawmmcx+1e+BPEKW355wHirfI02sH5kUVNfB+GNMrTSSDaNYIGUVsWgI\n4NJqy0gOKxXDXJ/MqsJYciGHKjCQkW1ZW4FjAB0SrMNZozyABX8YNLyJkNMA\nbpmQhG3YVwW54BCmuhTnhLcX4pi3vyY0oqwyAnXpem7SaKadsheqEsjVjGe9\nnUHxhgwnIKac7E7rLSWIhgMuxJENFbk0KUy1+3ajrBADRNsHaMPnZL9wNUMK\nYXeZqYuR2fV3b4IllDAgLtgZkTpuySmSIxdyoz0onpqZRHaxoPqISGqCGW4y\ngc56\r\n=nyGv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"10541c186965927555b76070a9138a22a9ee1a04","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.40+10541c186","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.40_1595332322497_0.7492138806818851","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.41":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.41","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.41","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"dc96126bc2f203a010672f188454c9095b94dc14","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.41.tgz","fileCount":180,"integrity":"sha512-HBV0yB/yDDH/K5R/iIg6Xt/DzPwnAmoSGLutqJzzQF7AnSf5WlCedNp1azrasZqYxSPbhC1ebupdbe6FwOmK5w==","signatures":[{"sig":"MEYCIQCRsdbfDkxKj+kleF6B/90c9UzgoUNNjmfsfd/STKsqpwIhAPPI1c+t8dZu367gbn03xqqxOqbBvWr02Le8aut7Aesm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411206,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtjGCRA9TVsSAnZWagAA0mkP/0+ZN8dgIm9m1we0duvi\no80+zC8e+4TY2+lQfLu3dqQMkFnxIOCkz1FUhNqdec1D89DzogY/LOKhVIOp\nAVon4cRg166XJEOeec8RbWVFoP2WGxroZMSvL2HD+VXS3cmxIr5NgC6LEAZs\n5IlMGplMy/jH4wIO+SUfkz1YFpvY0SAcG+H1Sa1C3DZRKfNnazCiOBBjJHGy\nZKJpMe0Tshb73fIAYz/tKvqlF99FIVSm8DVbLlZ6nlDRjnpH+utpvo+q1Sno\nHJ3mRA/Kx648oX4+C141DmH0L2AWKYmAXKOmDQNXx2kgxWmGKBrVBUbOI3b4\ns9qha0KiBsh73ueEF6RCNYfdGyIrS35VipRHtXSGHCypmmZTB1JgkrYqpqrQ\n81sIxgBFZHr3gLAt5Uiso/fw/2OV+v3FPfpKH045ClevHBdvYNgQSDljZeaH\nAALKD5rUZW1VC768IsApadW/a5YzRreUL0F86m6sdB+DuhXSVYsGkjC62iiz\nhuI8Lhe+1gq8PpO5R79R8JjthidqH/ugMGfH1yJvifGTxmrqynDXv1PG7Ija\n6p/NU98LQWTQAUkGgUzhb9Ew3VB2KmpPtD/MCrVs6Z0II45gDx6zfbwWAuRU\n9NHAs3jh//iVvq917glD06vT8l4Of5zKr7NTgmvPwm9ae7L+nGsoxSOGsvgZ\nF22Z\r\n=rxI+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"92b55bbc41fa879d471dffe925a6892bcc1e1951","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.41+92b55bbc4","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.41_1595332805842_0.5943112442047491","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.31":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.31","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.31","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d90c44ba5ff246a8a9c97c2c90b1754bd2b2b3e4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.31.tgz","fileCount":180,"integrity":"sha512-Y8xGSB8OaXGM+ugrzSMNEVjquG/sh/FSuAh2XGKjgGCj6nRUBK/OD5S/02oZgAjCUoE9K73p18YuH+OYqS6lnQ==","signatures":[{"sig":"MEUCIQDbnrCHbS4Qv0nDdXgLHB36Pu0bDXlAfjDq3oVb1SN6nAIgOO8OUvsqbzXs/EDP/q7sowUpnhk9FmeZ4wx1SUx12P4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFtwiCRA9TVsSAnZWagAAcMYP/1z1mUSYTLiWq9CMbyj6\nOhCBIQxm2UiO4V05FLsdrTV2OuWS1U2WkSA0B7av8BhMVDiBnEL3fXfT9/1o\n8XcsGycocH8Ng/Zuvl5Fa/9hKr1P/HhtLZPcwSmA8h53qHFXfWsvhlb+Lff4\nGfaXgh4M6ycdrZe/5DjNEGdjF69HCIsBS5zvC5Lgy40Hb0HQL7H5dzVuNEhn\nHPC79nVSIy/McUGGxDvQN2aPP72g62JzV0AB1Xh64Ze90PvWf7gLqt7ZRU1v\nUZISDRL+LE6IyeIAixJukbuRLJA1o2nm4J5uc2g/B0BI11ZkiYeWf1M/aX3I\nCYyR5meUJSePBviZeZUeiJWImaRnUPVyY8ANcxcz+33/YKto/jtLxL02KwmY\nh90zHGaXzyHQYDC1jIAY91eR+lReIJ1+ygRPqYzFOkG+iQODv8C5iMV+qhCi\n90Y0XRMW1ouN2nFHDsC6MsdOKLHVz4xZ3XwPtSllSu/+AoIXWARweMn0LWW9\nd8t8/Kqt8OLLGv2CckuokHuvBRxjvWTGSS4BvE61q6S9r5p0pTd74dBuEZb9\nwjh/MUd+5BNZABnrA1R4xvYr0Yf3Xl/whr8qCGXrSp/+PKJNQdIDTi98GjHg\nzWODRSn3yXFvO3UeZ24Qp50KPeijY6OMVOx3xk+Q/lDFDKIlTxrjOFa6ex13\ni2Dc\r\n=40cD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"88e012c6fb59c9dfa0f7b43262c79e8d7f7d79cf","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.31+88e012c6f","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.31_1595333666069_0.5481245212556949","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.32":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.32","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.32","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b7e1b4eed15db5590c1089e8c565fbe77b8f83a9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.32.tgz","fileCount":180,"integrity":"sha512-NfBl6n+iZbzDPgQkJWwKVvyRGyCQP5MVHJGPpgSYTBdfjyIZt4MNYQxOV/8cAAs7oASXGioObhEFNZvQjYwQkQ==","signatures":[{"sig":"MEQCIEIPfqH27YoPta61ClsJAJuGnj6Md9q/GZckwaiQRAc8AiA5kwR4+hBxOU8RF0urHhIGxp3HMKJZoXq8f6zGWmZG9g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFuS9CRA9TVsSAnZWagAAHuUQAIauNrIDv0FgmyGHBglt\n6I/Hd6mkyRzDSMMMaUHvjw0eoQaYhMcyDkITw8c0srtO7qkQmdhG233VBQF/\n8KTg3f5x1UVtCDgOopu3DqjSq9Spxqe6S9CZxUAPq66/bqWtsnGsgQf7LXyV\n+yBLFH0UFQH7JmEpS5XhMp+AnA2pw3zY/Y8QQT1tKixVU8YBZxSfqOC0dj5U\ndnDikp2CwCF0kYdE+Jxr9L+WhcPeuAxeREVp+UwqdIeGZ4WzK6bQQLbtU/Ng\n+tcsxRkrs5z0YmaW7jO96TPxgp4X2mJrh3nBghLs7ldKVrcVHR/vFaT7Jmzy\naJx4OYnbG3a6lAU3011oOWpkV9vLubFlGyQmidgVqj+rpUwUgu6xFGeH782n\nGxN6//Wxyhxmj4j5NNEbkajbdDJ8nKY+yBabWEGJMWFSH7tHi1haMNbDCem2\nLKQkQ6K/DT13D6h/8qsJAP/5styxsSSqlsSv+Po6o3dJCbaagzsEah7XgSgz\nF+Qvx555batZpK/UClJP3Rao4NcMyv6J+QW1UpkIjzCMrrgtwrFaSuYfxiyV\n1ojj26U1YAIsPiMGwA+VmOY88e0XbjyzCf94tYk4DBO53LIaVuuYN3Wxx086\nHg3zhUQC0dnMU0smYs88fBXtUi8haE4zmzA+yfn+twGqHqvHCiNujw/9QQsD\n3Kx8\r\n=gyD1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"478356ebe1705a48cf0ea2e9ad8528dacd6e09cc","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.32+478356ebe","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.32_1595335869572_0.9551009204253602","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.34":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.34","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.34","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"54d0659a4e2b7b7ad2776329fac601ba860260f6","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.34.tgz","fileCount":180,"integrity":"sha512-csV7y8Ufz8dbNkZPWPiggFp32H3KB79O/4L6Lm0fjwRE75s3aXwEZUv+niEzPO3AdWgumVbphEzl2qVgdi3AIQ==","signatures":[{"sig":"MEQCIDjxRdCsLSF5WZzviWbHHwxU8zHkb2d/LV9FbZojvqDBAiBv7YNhVfnTeJKp/wWQ6JIOIrIqxSyDzjkyaKOfQ3lqFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFudkCRA9TVsSAnZWagAAqokP/2U0RvNYmF0bjXBcHerw\n1Vu2oJselV4GA8rrMP5JX4vX+pnHXbptMOpvkUxbeDhfQ8ZJjPggl580yKwy\nSzjbIUVZgsohsBM8FmCyBCPLtywOLKL4as/i5CaGv5gm4b1k4A5Elmqd4MzX\nPvDvC1Zl4ZXyC2AV4BVHwmmdMS16ODF1453BavXPvhNSCFT7Fxxpvp4QTVO8\ncE85f5EctKwJBUUpknuMMVQn4ZTxc8K5jg/elK2t6muUO36mxOuun+ZmAG1c\nz6/rsSGMihKWiUXfocfOHpZQG73Kl5o0VdwtJlFadhrkOg8Bula43xjdlIvi\nM2/uzz5SeDwgIYJ1n3zVRiTNk7xHgX5tTp5SHzYNLgar69vQX83/v19T8+6p\nv31fM6LPA/Gy9YNI1Ro2Gnw0DsbrJw4H9yhRQpPsNg3Pu7a1JCRP3kehq/Rn\n4jIlwaS9b7XXhcoK5RZdFYFkaV4QAwoMyBLtXv7UZ8+z1Yk8plZ1VfM54PmJ\nqi9uwDNp54MHn6c0N7JkUCllXzfIO1+cN6SlcDRwnQcAnhQiW/paCD34hEsd\nzwju2pYOo5QVWbDHCPKDbN7JiaY1P1noqa2VP2Et0se/vfJEpQUaapy8ilRq\n7SIQ2MYqy61il6rNa3qniB0rKnG1cqgeHBlEk4NHVvO5TdQbzuZWuN4PG9w+\nB56v\r\n=zp6r\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7a8d38b270eaa4d1e1e6cc3867bc0363635dee63","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.34+7a8d38b27","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.34_1595336547765_0.07794835177298065","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.30":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.30","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.30","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"bc7ec230e5745dbdb219ba53f4c91cdfcafda7c9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.30.tgz","fileCount":180,"integrity":"sha512-fBFdOoiTU/uNNhJP6jsWdZjHasT8fW382OznSbEDKbevRxH/7xts0PAt9p+bFqGftOp8qeaa4P7a0EKUviOZUw==","signatures":[{"sig":"MEYCIQDAKNoA1kUskC4POWBDjiq3Vq7II4Au8xyCmQnoOrWVrwIhAN7QxbON+e7vcX8psC2YnWQHReIeoygiJhT2XdbIyKys","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFujeCRA9TVsSAnZWagAAVUEP+wX3jweOFaGUOydzi931\ngEraZfeMGZTdXa9DEJjJVqzOmcn1tmfYmH0vIGT2yMfOONLuugzjfEtuVjvf\nAIFBKPn8jjk+vSdsYKd6N4Z5DyIWPMYyA/ssRYxgXFq/EqUxJL/RN7I/gxzU\nbVKQZGq38t7gAUEWBzLl8MUEbiCrzgGA2fY+NsEfvepoYELs/hwBo0X6BgmL\nh6fHQZPThAuM8wnBjz8VgbmFwxBf6KhhBIkp8bep02AXunbeqInFcjjoTdS9\ne8jnXwRk7BIBJ3AC79G3mTUr8Sg3WHhXBWpijf0bAzO7SMJGRWCRNoEuheGX\nPYx2+YoR+LISKSIxitqD4MwBc55MH86cmU38Xk6bfcFOYPTIjeqJnS05gNtD\nxlJVJY55zrKtsZAxUBtMeVpC+czEuwt9SKhRDAIZ0jiFpKn2zKUxlFcEo1nw\n6QfLkMFiWLwXl1wvHvJd697+zzLqYv+qjDLlXOCLN7SSkajJyQFKBf0uDrba\nzgjdICQNDkPxltAjfpIb8Hdbt0NdLOu4Yx33DeYEcpq56ZaBvFbi1wZCCF67\nHYfLCTzdhlgv0nQQcbrB4vrykf9wGsw5jnI2nc1vwlSU5D6AsK651XdBftHz\n7PqMfwe3PsghoUktYozggJz2YkHLxYq0qoWOOZsu4UnY7RKvHFyiMEkB+V1i\nH8KI\r\n=2VW1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e1b1590046bfcb70e90a419db365901a778f66c9","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.30+e1b159004","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.30_1595336925688_0.4588346686173166","host":"s3://npm-registry-packages"}},"0.1.54":{"name":"gatsby-recipes","version":"0.1.54","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"69559c41dffd9e89c883604984a15f84adf1acec","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54.tgz","fileCount":180,"integrity":"sha512-olewiSXf7N3WkGn5+PMv1zuGED/R5qMr9S7yDRXJpg3I8HLKNKkVlQ4udVGjDBp7tHAYTT+SlN47wkcKgBKgcw==","signatures":[{"sig":"MEQCIHtYLwUKNcfhxQRnPRt+ZiQCy7hojOZ0zyW3uiP0IzSaAiAS2oVj0tNl/Xi47C4BbPxlvXGNHtIu1LLhDX1xuRNDlw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFworCRA9TVsSAnZWagAAG48QAJaB36cjY1cEizlboQX6\nDDnuu+QJl9DBNd1R1PuRHn4k5m9ENbMKaXjEhRF6mkKeVoc12F3YHj3OmK43\nqV8WxO8VD20HuuAVNstbBouINZS41kYrCFSoYsuttRpqIUwhTDhtpzNi2YAt\nCtw0FlflmUktzyD+kHPKdXVIpdqnHA1l4T0fSAaNYaNvx9R46n19YxDfZPRo\njkVK1iod+59P/5fAfqS5BwI+w/U4Kh2GoGtSETYuiFKUflb4sj75a44qpR3Q\nt+LYCOSiEXEWJ+t5iqAEGf2e+YC18+GOD8X7RklIItZwEJru+ZRYjOFYUqtq\nS08YD9JMnMEiXveUpcry/IWrqHnZxQEETHvjRg2TK2oJiK50GSTO2k2yVGz9\nnnklDoWSgue/mNvjbvtFCIU9Knc53L9DjNcQdYrMXRdfEuAXjU0LjYhm1sTU\nNYMvejoNHwxrdozwXg8pqs7XqJAV5MoSfnAn0tr3SnuxoNKUA9oCRT2UBBKV\nVLbkcY1gXyYiAIGyIiUmpQ+Hw7bH6DrsdAacUFI+LQfD7UHRxJ/Cj6rv28Z8\npSLx1IX21SdLdFkHXykAfFRd+bTVJ73D8cXRpCjceVJW2BB5A30kjRUq5cc6\n/wN4q/9J2hfjlTJL979aP2/beoiGVV852TkTVm7vDIxfcCbMdXXHViE2tRRN\nCWhI\r\n=Rs5S\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"b0953b0f846be774ef516cab6d1baaae8c90178a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.21","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54_1595345450734_0.6065201722154601","host":"s3://npm-registry-packages"}},"0.1.55":{"name":"gatsby-recipes","version":"0.1.55","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.55","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"963af0477097e65dfda778950d5f3bc594582036","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.55.tgz","fileCount":180,"integrity":"sha512-38L4BFtnBnoY4FTym14gMMsvYl3IaCv9kHcgG+ILWkHP1Kj2V55FhDomgNktJP7ODS+XnPjdwKoL7D4aS0PNgw==","signatures":[{"sig":"MEQCIGsFuyEY7Nsq79bwGK35g1Zl1BL6uq2E/OulihZlgsMIAiBQ2M9DOQJAyi+HcN0B4AU+fSZsLnYn4I4Sylts9molXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF/6+CRA9TVsSAnZWagAAZl0QAI+c5sbvmxhzdr5v1Kki\nIWRAo3fyj44LP8//FkOq6BSPG2TA1pQPWtpz0uOCFa+pZtYtNHSiVw+HQUlX\nRPTH42JgF75QM7H7PktXqCiaVhIbr5/rZq0YVziPwCK/muLXU75t7smUH55J\nmmlQIl/WqjtxZiDUovO0J3vnxZjuh25Q0U1aagsf4TYW8pbl5IB4IQtC/TEq\nQrOGem89j1UxbUxu8YpC8Ix0AZHO+raBoCq8K+1xAO0FPJ0zm6Uy/eESKTSP\nzrIe7npw6wTyMgP9BXx8we9zQRNv+kzQ6/OEmOeOkvaRNrpHSPdOHOy8xnWR\naENQkRD9LWaulEFbnJX9gJJu8ncWnaryq0J8iu/v+5xzVOiFlIZPMtZJOwbo\ntKtaR8WyNAxopQFnmBNw6BK0n1AiTnFKAu0p5oMjGUZ/qmynY06NMv9vz87R\nc/QaUj+NRwdixJ3XeYINbZgJTII5bemi47eXKXTyQXTYh9SM9MrKD7LA5IX0\n93Ky1Z+p9XfvnjC0ogNrVMo1y7NlEAYDlbwWOaa2ltjfE2Z+pU+5CoduSuNW\nEy4GiOTLoxCRwka26c6zJ1aOwbxrgi+R8WygiuhG12YPDiOVBa5rcqoPS65H\nUUbBGmxJA1ktivkhImffULR90Y2dbBAuRLUY7x8YA/iuiiJgm+/8VNZLdml/\njGFI\r\n=P+I5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"6712f40743ae57efce314242570ef6abf32ed1c7","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.22","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.55_1595408061828_0.3724692037776143","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.58":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.58","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.58","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8ac25603263b747fd0640c1bc9411a5cce8353c4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.58.tgz","fileCount":180,"integrity":"sha512-JAY0huW/tp5n41Z0d/aTQE0L36qhh2iGw2Pe6S8awd+jzI6NwI+Mnrfcbme/nrjS0SL7rkcYm9iRldmd1NWqZw==","signatures":[{"sig":"MEUCIF0d+ymLgTTR1RgsHwdTMeJrd6OuJFcp5Rmy9CVs0gcYAiEA9ilr0RYS7cL39qu3FBzjz2Xd2phAE8SM61AB/xFCKCE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGC1rCRA9TVsSAnZWagAAcIwP/Rrwjwq4AfEcnUBM9Kla\nUGvBRx+NYPWaIKmgs2dJ3IA8/E4UwnR6AlJDcpomlb8ZBOpi0HbYpT9MEuvY\nC2jCukeXFB6+rlUgq054AWZmZrg+RUZv1j+wZq4shWzUYRO7nASs113fdn/m\n/sxahD9O2HFrMV6qLnMP4Yz9QF+pxvxZteEtVC9Q8h8Yf5S+krUnE+dsmq7m\noOKRVUjbx8NzBHNYK7/oCPVFuyl1m+iJH9b+WIGn5pByDyldBNZ71o+v7fzm\nSC8Gzu7EZ/daIQt6jsV7fclx2l4/D+67+/xtJKU6KLwM3jrnzUTnT1S9LZhE\nX1QIid0jzKEzpyjmzRRQg/0k62CfQpboPIvsMk4jE8S6Aveq2NiYMRtkOHLL\nr/ESCDRJxnNQVRVWGG7Qkv6FKZ1Go+GnzbkQ/sGDmz3JfN8VFXQQb2YKFCLO\nJmmeEULm62UOAr0ueqbVnZqIpfBwRrWlvJWpG7bK4NHNsNQ6FtzpiqI7vbe0\nOIEVCCjpN3lukEltzkVlzc5uWZME9ACghMNfDtkqvKt/hJtE8H5d141NvQHi\nCt/jB73YJQTk53xinaZwtdSbpD785ymIWkIFvg+kVzDA5uNui5YAr3FHqr2y\nusk/ANtuQoHDJnfn76+a/t/D0EKmgkZ7Z44idXVOjLF8JeoCAoeJFrhzR/0B\nw/4f\r\n=fwqK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3a3523900c97e7b8446a2e07035a76a706bd49e7","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.58+3a3523900","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.58_1595420010654_0.07694978283111786","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.60":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.60","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.60","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ff290b941c174886ec69ff4c8f6ab4e306cf37ad","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.60.tgz","fileCount":180,"integrity":"sha512-KBL592w/yVTLGnf1XlVtRxJ+kZsvHapjkJBIISWBCGxxIvfrc1YZka0lICSYHOxXMFm5yjiAFeHTcfxd+fwAeg==","signatures":[{"sig":"MEYCIQDIdye1HOJmHINGfJ/UxhV70Vm3EmnCU7dYi20nBkKtewIhAORJm25A7uG7njDdklUvDRXKAvp8/ek+X4dmZuqXfenv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGDJsCRA9TVsSAnZWagAAdnIP/jkQtYs/0WWJpwqhQlYJ\nfIXjXQ7LLzJUoqrY7MbkbhIbIuMAxWp8vKGCgdUU0rfntjiQS8n168O/EHLx\nHU0M6SOjwGMo6+Pf8XgR0w3+OAk298xeAqsDcHt3wiUTUcnp/qAcMy4p1Vzx\nm0I6zuBdDhiAkETrp6l1lKTGvqky/EZY1tp2mKUbuviJg1rrxm8TLNLlP7D/\n9dZwsewcQuckVukPsghxQTq0GrWmIbaqCLLbJ8tvvI98+mDtuBZ73q6YkMdZ\nptJGQG3lglyANNToIDTDz5JfTMNtrIc8QH39nx+Ckq1b6EgF8orjJz0lElcE\nM+GVhZR/wB1d/R72yZb/nT9IhljUIUE/RKhz/ANtPzLpoxkiG+lmYD8f5cH+\nI1AXSmNBZTepwGpDcNA8rbprHVrkZMA4RE7kfIVw+jzOxBFLocjmUVh9M2cr\n9dxMahiOXqJc5O3KP/tzbYiUFGWah1eLTcfxoCC44aYpZifhZnTbBLtqfpwQ\n44bjdaup3E/sDwhT2MUdgGjG1qEc5HNycOjq9BwbdIl63LGPGbF20dGenbbk\nbSQn9ah624UvErsb1dXSEXtvlHZyL1aB3DjW+DEfvs6fgIYqwt5PmZJJHb1G\niUfLNZwyihhWlyb0zl6G3h+aslOlng9uQFiqZtYNMRIN3zQbI2lCJ05sih+A\n/HsP\r\n=cDYQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"69db8c6f8380fbb316185fe4c3fdd00829fec165","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.60+69db8c6f8","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.60_1595421291892_0.004069607339489023","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.61":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.61","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.61","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1205897aef58451e68d060d3a5d8d8890fef7e52","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.61.tgz","fileCount":180,"integrity":"sha512-ROFiP6PkfT5AgxF2Hxr3D7Jt6TiNzAG8p/SnLGwn5nxedrxPwm6nDjCXYv8U7Tm8ny2VXqKaq6pPf8z0mgsBVA==","signatures":[{"sig":"MEQCIFHYR5hX4mD8sKz6jH6XWsMwPlRIzinHCQDhP1hFFJg5AiA/EKPCDcVvpjogNffun9Jx/N1IVqCi6IYBjD4EvaZRSw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGDUfCRA9TVsSAnZWagAAByIP/RawM2n+xrsEq5ks2jKC\nCqBVfLo1efKHHrg2MoV8801uOkYFMfbiT5PTJWo2xkD+mK3btcLx5WEERxFl\nX4gydQjvsqGymj6a9eBF5fL1kI13T1cLt7FhEBrmwFSSro6TqZ3BA8sOFM2q\nhbaMVB+QPwflJAc/LqOpR3PQKZxYTWxucFTA/Rm4NBLEhb/2D6GGLcRWjEkx\nRx2znX3xMTJ6gNP9ZNhvHs0hVdcaG10IJwpTmJ/xJIR4wyuLaZXIKtsig+KB\nQ/j8yUC2B86syP+CpHVF+MKUlP5iTG28uKa+m29IbWCQV+BT/bF7VOp60t7m\nkN9bzZoiOhRscgaUpSTtHewe/tM9UEWnVfMu8EPN+O+YoUtXGSAsOtCO77k3\nvIrET5yP0752JItt8beCQ9AQ/gsZalifdEJjcrw9T2Hi/4VCzm2pS09k2NXI\nfvKTYcZpETqQndurw+lae7twdoEyRi+qFiHsEFICB5RiZ2VRhzQ12kl5X2ui\nuXFv5G5GrLP6IPP2clV8mBCddtwUCmAnWXTOUnltEazYE48CZpkcoVxdhw9R\n3UHjXvj+D9bWZFgXwsjoeYPeoZWbPLkzDD+D4SgsPzjV+/lmGwinMLIGDfUM\nFnkQus7Z5MBwaqkMdgb1swggpdDpBJCfqhwsh1bNkNjfH5X7cyViHVI2ZaCd\nTj10\r\n=iPD1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"80cd0a83474a4c233231e86aa027b7a026a48676","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.61+80cd0a834","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.61_1595421983045_0.8840847899606064","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.63":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.63","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.63","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"301522b58092568fcb81058a7a40202e662b2f35","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.63.tgz","fileCount":180,"integrity":"sha512-XF2s51qD/1ShNjCwTJliJFmTBLkxl5LgguRk8dKABQicq0NRxYcHpJ/Fj3gpkssfrn21L177jVhcaEzMiPZ5ew==","signatures":[{"sig":"MEYCIQC8NkW4Bai87MEvVDSHOLI8RR5Q8+9/ml0s0fyvT1oLlwIhAKdaoAN3Vs1upvXWVM45pa/kfErGs5Y2EwXKoepCop8e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGE6+CRA9TVsSAnZWagAAs+QQAJaMclcZ619jFc9D7nAH\n7qqNijv7pfcEaBJQWwOmdhgQpFHVLlr0BBMWnsYt03Q37ghZXS8jtfHIg32o\n090b9EOLELJp2ixdPkIXudqF/hZxehu4tngq2WfvsQsJxQA+2Bucfnw+eXrt\nI+RSOa4RWLVc96mog04FES9eT4873DZ9scHCcc7VrObtfo/2GMpTJepX4CUA\nBhgrI0HffhfTNY79qhmgAeHQL4e1WVqOiC5Awr1vWUj8/DKK7ntu/sjzuAza\nzyWd2M0pQtLh76qD3LBWxhXNMxYQ6M1YaG5w4osXNMC+hLjTR8Mp2+cu0TdY\nkbZ88U2JVdGTsaBNLgGOqrI9Ht+d0LT/NqfMl/pVJnB/NdbVDrk96jNor2kH\nLbZ+MIS5yBtDjNMBMEBNx+2p/FK89lGcjUxjlLfIobn7+7hfEZ97XqG075QF\nkyFO76u/XbYAHso64hnZ03EpQ4RxlZ3yBzJoSgFxyR9YWXy6o0a/yxn0rp0l\nd4gqcEpUE8zTIh6IaxmErYuu14JimefX2q98mPdNOkPGYx4TUxVlNoncaYES\nfVCyghwBVrzi2wG/wXT5JbIOFtJ9SCmB6rfL7SuI4rXzV8JuU+Tsg6dptVjG\nuC3WqrMI/Wt0iXoa89p6VRtp3ry/cdUYLaa8CTTt+pBilfg5OcI6qbTLzlg+\n2vu7\r\n=vKsC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"52b2df976e24a8e80fc1c547e5165cb69f3e7b4e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.63+52b2df976","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.63_1595428542336_0.3792990064311126","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.64":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.64","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.64","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"25281c626903d836dc0f6eb8c938b5d587fd6b6d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.64.tgz","fileCount":180,"integrity":"sha512-Yrp7FRZ1n2/nYEy8RuKFrH9oreNZSM+xvU5i90HmaQY8iQuY/vIevauqL5Pg7GRj7AAUC5fHF9quF/v6/tyaeQ==","signatures":[{"sig":"MEUCICGHpj3p2HFqVA8D9sZhc40bvR4oKJGxZdiecIT/FR4rAiEA++mHE2CQfyGgGF9bYMfi1P/pESpTacrV0L7CzFy8oxo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGFFZCRA9TVsSAnZWagAAZlUQAJd5AYW3qUSjjorqcHRW\nZ24J4YxNce9+cMmNf/mEjwWLtX8XiKabfrNNXidMWXpJ7KAyoAtar90njjpF\nk/gseQruzd3GIK0S2MKTQTBYQSt6LwmJLclPgqMotbz75iIWcA8I5g2ppC51\nODLs7knG3+2Y8HamKKxHNiUSr/QOR0PJm6UXDv0s5od4QLWM1seG+K9R+PGX\nfOXiDjsNuo2BRr0nDXgOKm238fpugvUnydUtvSTzSsa0CmcKjKtRprDXYGQo\nMGuGNEe55EmCvzsiFK1nH3TZG2Hc491eifwYO4dJqq0oqk8pIl2OQkyUDkDU\nsbpJisyxZnqafEQj5SRz/o4hNQOJfZxJcFO4Jug5iDbrMwjvhSGn2ZEXCbH5\nJP2QhzF8f1Sah4lgZQdbavUbefwa+9R935/JCEdgPOPvMt+0/waXIKWtelRC\nUXKsWWaabLfQ2BAxhUirQA8GqneZTNjg3e7omxT9TX4CYOg6dC/NPPvHYVp+\n3/ExCcqYJvBvg58cMDeW7WAswGJYgor9sohR4dL+WhQiM+99L/h01xipEZDu\ngN0UUZmXbbO610c21bH/kvI1FfNRH4X56UPggrxhpHElhGguWmZNj4lzIBkk\nfmxY4lRoIispZ1y+N9TcHgYRaM+KoQ/kSq1OAIQ/MRgw9+bktK8DwJFbW2JE\nia+p\r\n=kZxo\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"b023006b1b60c389e8d2fa03eb5618c9e091d7dc","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.64+b023006b1","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.64_1595429208743_0.5145382944754153","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.65":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.65","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.65","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"646de8faf64a87adb7e5ef32af5ee36ccab8d539","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.65.tgz","fileCount":180,"integrity":"sha512-OawmJzQIzzILcg2MipO5SjOqv9m0Cm1rpfd6++OYTgMSHzqxE4Bwmi05gasRFQfguzjceH4YkMBsF+Oo1aBlwg==","signatures":[{"sig":"MEQCIBsLzH0LNmyhZZYGULY7fNxdx53wgQkkLsqKg1r9TMbiAiAoUpPLnK8dKfCClnf8hyfMhy5bTYW/QcXX761Z5+Hmsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGFTfCRA9TVsSAnZWagAAg6YQAIiJvJX/rZ+cHbowWM5N\nhFTwAHVXgr9z32AJYKavQxj4I+E4Ma8hLCQizpVHSQlrpscnr6wxzgweW6Ha\n6pj4LQAQxEb9aWaifLlHbBABPSLzR36XA91I+BqCdqMNuBKvkyIItXlzoahc\n25klpJ+iP7JjsjbcPhhUht3YMDGd0gELnGI6d3867cuAVnIezwqc7OfF0gSE\nxQ64PxGyhaiE9nCO4R06bTrzn08Q02eZ5FXbnThZI/hjK75E5c4aAzee96yl\niucUUZmJeklKfTah/NHF9z8LxqJY4TvYxHo+ReRD8aiTTAEK/0ZKl6WiajLV\nA5tQif65UkXsrYduCmfZtjMiHIRg28GtJA19WDIE1OHVQBabx2q0aLvsJ95Z\nBWU6wlPJLDV1inDB+mSHlTNYzVJxdZ2guzX5FN8JtfgQtWw6+wJZY5Px75X+\nDasYbBrz/sZL5vpr+dpq0yPSOt0u1pXH/b1efQkSRSwsLb1RX2mD8nLzMUJ7\nNWSGRu5TQZ1/NRuBGcgHI0CGrSSIpoVOVqwGxvlwJrcclAcZ638N00Q6+zrw\nj+jOeU+N2EhXIfaywGqqYV1+rT2jmEy7X1xxYmQ16t9FkjYz5cqJXQ4Fsd1+\nxDP30cMZNG7ilYEHnIVb+xgscmKz2n+FTXlMK2wFUX9h1Zj/is5/U6a3lAog\n/kN2\r\n=MFSE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"af27e8394bf3a770d6e229d66811e2673a86f4a8","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.65+af27e8394","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.65_1595430110857_0.06578005031347645","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.66":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.66","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.66","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"bda0f2b0ded79a0f08d4b84c2656ff096452eb1d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.66.tgz","fileCount":180,"integrity":"sha512-EJSld2Qh10Hm6GC9urj5G7UcadD8cbnk/rLV/MshEjJBE5vdd3+dqKte9Byb4cIFf91vcielEaibkIRQTWXxVw==","signatures":[{"sig":"MEYCIQDiLQ2N9f5/p2hy1gT+m0gsQILDRfo3im02kLuE0/Wu3AIhAKIcWEfRyrMUDkPh8XXhCvY0z2RjepGNNAuionT+OzR/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGFfjCRA9TVsSAnZWagAAIwEP/1wQBycwmXJhUSwABOmu\nTWUGf3M9YaMo/fJqMgMInEdFtnz35O4qp22zSBS4OVr+MWPmMhvhTGvkMtqr\n+V4xsne4LdmgWYE6Ns3bQyO9Yg/G4RWMQ6+sWXEpFftDbZwjeMn63boH9PXq\nW8V3B6uXGGkBisuTkWGJynT6SOj6rPPf7vIVKyjnkTt1EyEk9qaLnKWCu7cU\nO2EoJkgSo9KdUkRzspGbzYdMr27rEN7+PI/GYY9iD96UXnjxc7ubY25AtJRu\nBB3OH8imhMa/UJU0Cb1hKTrwt8mqDwcaI9ElCH4pbHAti1DNV28rxUZzkkLC\nfpVVwfr/MH+25x9zENUnQ+1FsspwFqKXPv2BFSyk+nvZrxx8ZGkMDB6D2tbp\nnyAiV2KBUNFjO4OhHbyffh2/9jAhRmphIKs+m15KxiT2rgPpe9QH+l24CEto\nNa7HoMiqE5qxrsnU+jNf58tbw5sIMCbQz95kiVBAEiLbhSSfbLUqsSZrm0L5\nMeOilIjmSoI4tb9zg7hKeb2aJm0tAehC8frlWamQVTGqs6gcsxtNZrtLxGPy\nMqcJ1fX097hYLfAOtRN3YnQnaYoklNoXQvcm/p6neBXDjiFSqq4OPRCasdVx\nniC93jxLlDx8ISJTpftEvIioyj6P28uIXE3xMI/sX2ZSkIHm0y9zp3IkDs/R\n6Mbk\r\n=wFRd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"998b44155312024817a6c70a07ffb163a6e0c90e","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.66+998b44155","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.66_1595430883454_0.4610551873495121","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.67":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.67","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.67","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"437d0048bab1d5700cabcbe1173a293420a777a8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.67.tgz","fileCount":180,"integrity":"sha512-wj8XhQtY5TBA1gvBkUgLhhUu7VnM66uhKen4PV84YnXBPGXukqLE4kV51QQz0puRS6WoWyXdS12S+8ygO5E6Kg==","signatures":[{"sig":"MEUCIQCIhL9KEclC9B/T7q0pQl38ZrTv7XFOiWRd0/jx9dOiQwIgSpm/cx3ijAby6HKKHBT+1xsqH/gqHBL84rGZYtcBcVc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGFodCRA9TVsSAnZWagAAx7kP+gNl0gLUqMn37hu6/cuK\ngM/kB5nmp8+UD8srVB69lejciZrin+ZzX+1bw8TuI+/wwelktawWlkpbJUKS\nNNsd7hniQaNjlUXAlRu5eRS1u7WWga2ZVyCkgOL6TNAEMiA5uiHO0KOW8BeC\n0T1iLcjI9xrIKLCAIlQOi3R/L6Bo8jq8nwAJs17dmbM2mkrJqpWb1xKQStEw\ntr0+PyaaKdgFu85d7rADXWxBIVVK5TRPXgi+Vn727wiAbc7cDe7N0gPv0s2v\n7MjqtyyoqVlH14L+TG2vzQxx+sOm3ZNWuvCzZi0E/WO7bjXnbSVN1XpCLH+B\nfemnRz05vCyypJETGML5tAt9y12yPLAyEasJReHC9lKk1a7PLYKMy37Pe7TD\nCKeGXt6wcXWKftFXVq3uimcxz5WYNWtd1sGYQhFZ63tPv9OyEYA1SwEI6gF9\nz3WWeoGBaLTQh4rwDeo/NQDznQb6NXmtEkfoCzLLm4x0qjJ6TiknXYzaiEhA\nlLOVk8j3EgCftVkG0oA+iHxLookswvjCl63OePz5DlWTn7SN5N3ZCbjX0yNX\nj6Ypt1T3GmcGLfbmlZqFtqBqZpsmFk3D2y7nNE+Wq+CG+ILDAI90bfK2zz4y\n3wLGRI7HN2BKuU+75VOH/z3GYjrd5prd+MbsHolQ/R1l9/VHBzbST+s1Bkqr\n1Cjg\r\n=KSMX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9b0cc720f0321a02742b4ab1f354fe8eef12a121","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.67+9b0cc720f","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.67_1595431452747_0.05943311017889297","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-testt.59":{"name":"gatsby-recipes","version":"0.1.54-telemetry-testt.59","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-testt.59","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e13dc50ac3bb8b666ac270b89deeff3e8e65d65b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-testt.59.tgz","fileCount":180,"integrity":"sha512-v7xnNmAtipomwEaiDNCo/baKHWpEs/chVIHQrOa6+JpsJCMjlE5RdVQBHS7kQdxA0089C5//nQAD6fBkyfy4Ng==","signatures":[{"sig":"MEYCIQDaS3c/gQX5Vl2PkxDCXQB4rZNPfRlPP2udzZfO1YKmOwIhAJoKkT2tJHEuy/CacPcC3nnqyWHTWwDWsUUoG+txvBsb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGF+VCRA9TVsSAnZWagAAijQP/0I8yMRyQEkvoMlemYWE\nz7XKCcdLIujs66+6pzq21DBcd4s5d7rsw/+Dj+BUm1fryRh1xyAY5IyW7ERN\nYxUmUndRenQjf8R4fe/lfmyfiZAOQG+1jxIVfu0jWTMWHmHBddiRmp04i0yC\nrBdMaPg3KrRNxBcyG1B0r7MWl9ft83lWmq1LC8wA4osOvVy5PZyM5hgxjiMO\nssYnwGyjGhFqBDHziAMmCj3MBxMNskzkFZfivBAjPF8AAK+kAkJY91i288cR\nnQxN8+R3oQ12epaD03DF+TfxRNrPIjThM3Omlr9CPcBvnuu/9HsgCmpiZ0v4\nZ+SQRvCH6IPl4+TO7zV62RWG/sy+vGLjYzbISCBF4m0qiS3cODffhJsSrGzG\n8mgWyeb+IBNr7SHj89EgdjRnAZNnqzhCjFH5xQobylgMjyEEnBz90ywFmP7Q\nkL4GJaSYF1c6jv9HbAA+FYNwFzAVLN4yvf7dDARacytgO01VkN7GMl0ulO6z\nSw9SHtfSknOgoOsUBe1bdEHRopZXmHjk1cN3G2s4OaCWi36Xa4/ph4SiYLuP\nTRKJM/LfEIUhPKXE4UpeDcH4hcRmeM05A4meQZQeW1Jp7k/1BvN1IBbEOLie\nn/ddZ/CZ3Y57quJTrhTX2G6dYN+ilawkQrOVGSH8BboeaGDixbQW6Yc2vejH\niQTI\r\n=aCVV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"b51b2efeeb9c67e99018ebd77979fc4cf4a72757","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-testt.59+b51b2efee","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-testt.59_1595432852604_0.9022487417073553","host":"s3://npm-registry-packages"}},"0.1.54-telemetry-test.59":{"name":"gatsby-recipes","version":"0.1.54-telemetry-test.59","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.54-telemetry-test.59","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"88f4b97b2df72f19a63c6bb12723631e1930ba14","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.54-telemetry-test.59.tgz","fileCount":180,"integrity":"sha512-XxoSz55HDBye1sFasZArAIdqnOrDyZdOEXdeSrC6LRy+/tPFOR7AMXQm8oM2jiC4Aa72x/uhmXmPoFSjfDhVpw==","signatures":[{"sig":"MEUCIEkpOeQFOn9eFe2K82MNo3WxylunWCrOnRW+zr0KWltnAiEAv6xshRZvMSRd6sXh7XyVXaG20GetUjL+PwUZ14D+Tog=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGGuACRA9TVsSAnZWagAAPUYP/2D2v7MlcuQiygOc3Eip\naFlaO9JGbNmpFWFJAckSc8iyaoBXbcT0tv6g6DpW9vMY0bWWKr6u/xFeeEBT\n6V7Vw5L0R/rV3AaymfSGltTPNlck9ouNgqDBb6cSbhf3sHqaGmCxprygV+d+\nsviWZ77l3sK1pYXLY0CncvecVDolFsPVOJW/qUxQ6IrvGo7no4Tw3kggO9Yt\nI/vB0XgjOgsnuD10T5Cr1JFlarPlLqGqYf5C1h5LRl+5mMh+elIlidPvVAl1\n6RfJ7LkiOdyAYpTStLfklM/igXCFTxhd9kAuItnanqshP5l9tXDOb/KcMn4m\nNIN+jPJ4TkOz0e3HpmxLusFYYnh/iC4CeZTMDPLZKAdUq2FhAFzT0QdMNdvS\n6/RrjsAOkDhEjBjNm0kV7kS78QPwonRT0boGbC6iwyJ1mwtGxKvBWaxBUvjD\nUAAPtG+zBLNIk1RDb8KVm4s8f4XML1WFHv1jlfXRTGj+Yl7Le5OKeSv7vmsT\nVxJW9mM5/q2PnUS5Fooyn+Q5D/FQk6c285ipFGdxhcW+tSIqGAPudqvjt0iT\nsc64dcqxyhRMIEz+qH0pAb/1RXZs6oCmyu75PnIe8vGVdgfZBkolUWSbcSZ6\n/iO+R6JyWQ8uC7TheyfIu+MnsXV2Z2uYm0tNWCjHMXoqO1MTU/M6YdzbQauJ\nWuHB\r\n=B5Tf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"cf1aca5bd111a48ff61e88b51d058b0243a81abb","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.21-telemetry-test.59+cf1aca5bd","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.54-telemetry-test.59_1595435903834_0.04603743591021292","host":"s3://npm-registry-packages"}},"0.1.56-telemetry-test.16":{"name":"gatsby-recipes","version":"0.1.56-telemetry-test.16","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.56-telemetry-test.16","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4342555f6ee0b3dca2690181ec08a60ff9644d61","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.56-telemetry-test.16.tgz","fileCount":180,"integrity":"sha512-m/Bx2UXRKpiW7ZcYzcJjpwOypeqmsjXkqyKgFgenXCrtnP2V88kFll5if3+f9plDtAPv3pq0/Od0MPyb0OaiOg==","signatures":[{"sig":"MEUCIQC0vP6xJoX97E5qEuLjUszPX+1wzEOiu0bm6hP1nlJSgAIgIwACHxPDns403Tx7lPol5mo/PTWdrFZllCYl1R2M9XM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGXSmCRA9TVsSAnZWagAA/e4P/31pPexSUxTBXb5QjRvn\nFR2cEzF9R8XZZUqVBHYZuGnlJRRDtaY0sPuaAqj8Z7sQm1ibejLmYNCkkN7T\nr4ag2LFc/SH05B3ELWqLiifDAq3hHYGV7gojUP1Bv/36mILjceoSCLYl2O44\nRzJWlYcv6qZJ8Sxh0Lh8fmFwkoWM9KvJKiJ4cdBNjvLdWAMx6fQ0zI2NUMaA\nqIXoMevH0QjaSwMzqGXbUWGf8yhp4naJzCkTRMmUL6QJbEkDHuFC2cbuGUfa\nbYpqV20RNZ2Lz6u6pJqdD8NEc61x0Aea8wHj/JcYwj2Yjk16eNS+FzywpN6n\nfCrGVRIV2xUcD6P7kkiZIGC+agrKKH4EFJKqYNDRaBAbSaWZcGW6sokSH8sc\ngjd/6VWKXB5bWBL9N79mu211nC87Neu/twR2FwA+TU++VdRHWzyPzEZT07MR\n6SToY1gsMtZi/o0IcSKHJj5ZIxwX2DyUO5ER7uNS9iRBJEzVZpoqnyunzT+Z\nGL6FxQ+oYqokQQA3ZC4j2VMQDF9CbCFCHJRllJFkz2zGHs63SwwIKmepekYt\ntCjkQ1VD+C/DgVCwS13i7+xcddr6YGAiQl5gHiy+BuyLMXdmSEA7bGPnhCIN\nFH8NUZIvBDX9mx4tM98a84YcF5QxLcpFV7Otu4bzOspQKel8fQ5ODc5LRfov\n+Qwh\r\n=Kee/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"b22d4da7a3d0c5f3892d4bb7635239f8e049451a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.3.23-telemetry-test.16+b22d4da7a","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.13","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.56-telemetry-test.16_1595503782192_0.4682614097454638","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.56":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.56","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.56","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b98fc097aa00a533acc799da563286c4d1f22b50","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.56.tgz","fileCount":218,"integrity":"sha512-hhkGOZLWkoQ9n7yUm3qi2RUrn9J5B8P6rAuN0Qy2cvyxxfx9bjIusc9Tva41PTduS28kLXlmTJd0HPgntfz9ww==","signatures":[{"sig":"MEYCIQCOCNTuLDQ6Jclbr/dQEg5FDdFXb2nlVFAv4swQrFUXbQIhALUtdGfc+ZNqoXumxg7GCXpN4Q8hRMJiDAnQye7GPbG9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":544759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGhWPCRA9TVsSAnZWagAAVigQAI36ly6tktZy5xPqaomv\nTOJRw0m9CjXB5HstTOJ2CKun1OmQJQvTRnHGaFKQ0LXxq/uXdeXeUU0DoJ4V\n3gRs+rvHN60w8aZhlJM1ecobEmGrY4xPKaxWzNA8khQBxJKAmEpehwD/jaHg\nDwWQY04EzplxcAElrFBdbjbSb+EHy6rypYLAY/tBFwnL6WqaTXC8ffMtfuGx\nzvk5iejlvMqddLEupT05Ap8H6FG0lTBj/86PjqBdTPSfLoZrg9OM7rqi7h3K\npPnjwQ0rR955LwhXLbCtFGLB4JUtHsNmbh1tlHn++N4593J3sHhr8dpbmueW\nlSespjpDImbd+swRL4fQF1gkPq1wK46S/KKI6/YAQncchvqXuYdXng+WMbi+\nwVj3TIkBt9Q6QtvzIID5GrHPrOS+go0pqJ6YXpVSTxXsxd1kWfTpVDAmmFlB\nqqorMysAgX6pVLUj1rwSDTUt8YFDVxtz7CuMMzOsZiiJ3QNYNEo81rxLMRfV\nOwyeW+FClaMp8E6v8zJdAVBL83S+HwIxTLvX9MQzIkMZLiZqZ+0VJ+PKx4fo\nJ+CBerS4VD5+ISNpPhxuGDvuvL6pyzAF3iyw301NM2jS64FhkYmW+aaAREPR\n4TZf+hs3GJN8R9gKAQ4Jpd+pwEPmIK+f8pSvNPg/HWDzKFgn96pk8CualgC2\nO07L\r\n=Pk4N\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2c257afd6a549f21cb79deaf950b15a605234aa5","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"next","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^4.0.0-0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^4.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.56_1595544974050_0.7544181473289207","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.57":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.57","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.57","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a050040cc762eaa9435d8af57ec29714eb478503","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.57.tgz","fileCount":218,"integrity":"sha512-oFKlbBHRpzJFQFqtmQgC9UMaIOhDwkiOJ06AHg8sF1DnH+7qjS0ONBLOC/wgKHoMjHU0IzEnrNJNVq4pbNVEGw==","signatures":[{"sig":"MEQCIFdaOlNfeq1jQrkoWTauDLR5IuqJfNJjWHqY8i4j8F1DAiBuMD6o0GPbvsZNaqlyu4ym6hIvCDpI9dtTIfWra8/d7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":545647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGirwCRA9TVsSAnZWagAAgWEP/0oZAc04exgvUSpJ5A6I\n27Hd83ccJ/O8ll4buS6zJ42bQurRhmqhC58yjulCsXWXofZBFvQXEHaNxC/g\nTzpaLZ6kCqU6E0+D7YNnFfInCuJ1idOQK2Z/SMG7Y8PKaP1n/lNrF6bKyI3Y\nwM6DavNqTnnMOXzHiM4H2k+2CRkDkmyp4mhqf0UveuMbw/61Tvwnl8mEG2Fx\nNgUe/dovl3cQlJzxd45e138PTtE/PDHgDtgILhXwNuqYfloQ5MQ/7+xJPrWF\ngJvzqAHd73E+bMjJvtmmcK4xtUffTF9M66LLzcuDbrFuQW9kRHuMnBJgk424\nrsTg9HturE0HXqCWw3Ue5Y8Y3eGuOBngddcAZ0m0SCMTT6iDEDV8UB0M6lde\nhMKypFVeJ7836A8Wd+LHQyXwaYeDA72K3luVytcn1xQOrR941ayt+5sR2al9\nVQbwceCswoYPOQVjlys5n5YDiUA4SriyQnvFkWs7ig3dxiThUzDPvwHnrJU6\nCS5hD52sQ29RiL5BzZWpQipM8sKv1FH3Sr4UrVMSqpqKy50JLioBpQQ4EdnF\nG3C2F2ciC53M917aQrFTZNrMQZUNmO4gvT931KYSq8MzFA9KZy74Q0JQBZLf\nQ1Fp3DC1cfGWhmnCxGvA7sXCEp0FbfB3IdVcEgK3SUKtXj34htF3i0RAa2g6\n8Scc\r\n=ERK/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c3cc70d98ffb529f05445f44c8b035654e2b3002","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.0.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^3.0.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^3.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.57_1595550447546_0.7707515476481963","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.58":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.58","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.58","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8353fc6fc4aeb11d89ee2fe1042b2a7890549e6c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.58.tgz","fileCount":218,"integrity":"sha512-pbrgW3joBRrgLlKSra2Fvnp5iUSxN4u5o1KI65WyTFyQ7AbIZVfAirX8iiunSfMxukgdlwzmpEwq9X7UCHjkpw==","signatures":[{"sig":"MEYCIQDKuI9h13ZqchhfuPAGae/oNhj399DKaUSuH0KJh72HmgIhAISOKhXOZCbtpqI4Tr6PSJGdCAVhghgADWk5o0UteZXs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":546151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGi+kCRA9TVsSAnZWagAAF18QAJk0gCwJg0GP+20uu+nZ\nl2CAvFG2pvX7dOt+kBxh6OeBdkM58fYjUx7vtSZxDI7gKrhZU0VYSDWHPmGF\nEzXSLnFppUGvtep+Jh9KRrrEyDsP5ZNUdgsHROj/0yrSkrJG5FW3BJZqcHeW\nhgiIECn8lMH7ZgWv7YFDvsgd6H6hPc1+1lmnU9y1nazv6UdHIf4giIT6H8kq\nWDaNhv8LQegQSE3f5n0qMoC3+HooeVNuNyJ86giZxgybEROdYmPYXkbwWbIN\nRX2ulamemool+Imx8jbQLgvV/1WQwYqu8OW54/0SqaFnPEcQcQeYOSTdbLYb\nU+nv5duEl5fku9oD2fmKpHBPXY5MJB3FUIPI7V7ybd0OS1qibdPXLA/vzTsC\nHHJlOhJ/C1LLZ9DDndqYrAb0eHu9T3IY35ZZzeo5+1Qq7h5eEmp3sZekMyCE\n+8QjIGu5Lx81vETWrKw22p54LEliQpZtCzjSAM23trepQn8gEPFrVBgbVmlA\n4lrbXGIwZlHdDI+mM9npQxIfduMuwOd7s3OByf2bNE4RMTJHRLICI/xoh69u\nFqneeO3bm92jkQrDaGd/tArHZTFsl23Mm8m1bb8qP03njk9fBvaCSQXEZngL\n5KVB4E8WeT1dsBZGfwGihoWu3z1rkY2O+CsXgzSggpyjFdUKe1h6TOU6xbEO\nzKqK\r\n=+THC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"78a3409066cb733f749ad6426d028ed264d97555","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.0.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^3.0.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^3.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.58_1595551652008_0.577286771309375","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.59":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.59","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.59","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c3f799dcaea0f6d8924f2b4b50534c5a5c4d5e30","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.59.tgz","fileCount":218,"integrity":"sha512-GL9TnoXVsA5qTIMD+V6iYQSJOHPbxtgXNONebLTIG818BNUUw/OZXzBQe47N46WN4PkEN05MDRCrEjJTPHNANg==","signatures":[{"sig":"MEYCIQCRXTZBIPrmn/eZCMZjF6g7yUkLS0/hBgBH1yJ8saTApAIhALKFVHWNy5IeeljBqTHyewZjE8AQdst5X6JW/UloSYX5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":546155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGjOvCRA9TVsSAnZWagAA9s8P/3cqdqyhwtiDxMasoGdp\nQUG1q2HzBHuuuRJBq9QPBqFyOk+YN4rv+Xv8bK5+IpQKSK2TsUTtHe8HuGRB\n9AgKs4DKL8mZ4hn4l5DFan5wIi2EW2habsH++Ipj+sTFdhR/NlVKRIKMIgyt\naHNMvaPsnSwUe+ikOLzImuoRYLVWTOq1fCTCcTlcRmJalzTKNYNRp3qyQFCX\nS1/Nx8OAsqP+wFS/YHEAigzYurtA2ocDiUsJGGqjf0dW9j5g3idPUykBXajm\nSXDaWo822WEN2mfGhY33w/exgHPi/VS1Ke9M9N4cwyIMHT9OyPwr45frpi1Y\nSApG5thKQBweA/zzBzjoY64CfD+A1q7DmfA91Lyh1swKQ91E+fUPC1vYkIzx\nk5SPV9UtZIRxhVzOeZUVT3yGtoMKXqCXiTxMC6cUYtQ0f5TKqF+Rp/ecfhJe\npAIgQWfGdpmj8mOhDZ5kfoaQmogGprF1klDoEgU/JnmeEGAHxzKHAug+6Zx2\nFD6oQa3UieSvfwze8NQ3wy7EjZPsZlOjzAHUXm/lInpTVRuTKc8YIwF2kQwD\nX9ogMzueVon72+Xy8WaeVLbysNQ7K3UbrvHakdiI0EYo4iCc3P5+h4w0QIHF\ne1RXi8c7WVEPedXRp/dTl9fU+dCBE5NbA2ZEKSlPCTf5lVKWNt1pO6RS+usW\nI7/D\r\n=QZE3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8bf1675be86f59b3eacac1543a7e8be1848b47a5","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.0.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^3.0.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^3.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.59_1595552686820_0.6413194276076775","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.60":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.60","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.60","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2a7fae2c24b79876b4e21e4246de308e5a9f90a1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.60.tgz","fileCount":218,"integrity":"sha512-1QyikqGQFKpVTItz9wSOU/96NoQFWE1uXY4EDApi4o3k1iRlh0g0yM+qbzHCr/O70rV//f9WGum5GNnT7Qd1xA==","signatures":[{"sig":"MEUCIEoVc2gE8RrYZRAryAgWb7d33wHtqJg0Z3qvPDcu2NIaAiEAy2F3D6srFwKc65xQFtjw7wZOKNb25yGF1ytGTnT4YjM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":546213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGjUSCRA9TVsSAnZWagAAWpAP/jH6CN/v8E2YDWoJR7eo\nIaU+QEVFb8FEZ6Y56dSprMfdUVc/PbKJKoghxkHmapXtBdOLqO8Me8pfy7Lb\neOneyEgpBAW/HVi6GNHEk0NIS8o9NYp2fVkf6SAeI4lebZp2f2n/D10nEWLP\nSWEICmoEQdg1NPr4+f6ZAOi9sfxNqzsqXO1tofNwG7qkhy2h0x8/F6BNvF4O\nDyx/3EPrfIavMx7xAud6WqxlxcDwHQ5Sty2h/R9zif5JfDd5Hz6Sx4HTD9XL\nmYEO2FaVmJlKvQi3katLLrJEacUDT1OrO9vVkebUIk82k+VJMdra3/4VPuBT\n+gT8GqG8TAfnsHJgPWpjHeIiuRvOfWL+67w/xdaH9s33NOLKJIl+1RKlpQ6g\nhJPeq6Zhhatl39Juku5XCXB3UujfnIHgilpbu5J67JYpRglADQ0YoAtyAxoz\nktSXytiCInsIv66FtCWsh+aFACgc89Tg0UsXDYk77dmqefV783A08ejl3xpl\nR2jqGSAYeLKZIqgfpCkHRc4FlqjQgQqI0HSqwuLVkzu2E/aAu3TjAyjzzly3\nR33ST/4sarlZnhciLZAudFkGGbST8ivupDmkjebKI5O4sdxOYlHblgmxFvL7\npjlJzI90V/UY0ITgKYXl/0h+H4JAPbTxfwcYuJN80dFPEl+Br80DG2HFaalu\n0XYd\r\n=WmPK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9e77c666da23129115a7dca0967d57d951592ef3","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.0.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^3.0.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^3.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.60_1595553041891_0.3643634142402987","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.61":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.61","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.61","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"eb122fb8a6002f3d0333d76ebc610e744642886f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.61.tgz","fileCount":218,"integrity":"sha512-aoqORcBtBgyce+sJ03TpkeqSh9PjBK5cUowixVsfCfGn1RgZqxveRSJuVwwyd5FgjuBeZXpaU84d+hoe4sJwPQ==","signatures":[{"sig":"MEYCIQC7Va/w5M6V9nnj+umteci1hMsX6PVXSOcLNNkvcZaXMwIhALVF3SHrw2Ol6RKK+A/xfUKDLL0kYJ9T/16C/UmU4OXv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":545856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGjgVCRA9TVsSAnZWagAAx8gP/jwUzVxQSV3mU0AoOBFg\nacbnohX5jpOOzu9ea9ttYa77lqEkMf2Gm0h8e7yOeJaG2u25ot7t6GRugnDx\nWtAdAszc79jofbAGp2ea4TlVHpdHZqSoWpZv4pPckzsWEYHC5fZQmzipHL4i\nt8qResd06+p1bjeBkNRUQeXJZfPEVL59OUwLMJDDzhB3b7jloOicxA8FB7+u\nAQ5Q1Nych4++IiFFczgdFmuthwKnr3aKMZo+sGA3cQCVrv13KbaM15vBUE7t\nNT+N+DO2+bPoQ6BgNJ9fIC1yd6+J88cf216syc9casj8KoU3KRxre/Wt76sJ\nmcqcyO2RqRxHvvhJcK80Auexnh/rMBXWaGdN3ON5fbhiOX7pSws1FekofyhL\nQytiGgZppyNtoENM7u8l+T1i6PUHmB9H4XGD/XarIu7I+BZVcWjMhA6dWBkJ\naGKcWU2gbXm4+0VgE1t03onqv/rUJ0hNIBWrYCoGHkHagujw0eNOg+JS+3zK\n1WF5MAD365moATtjUIQfivvYCw2ryWUk1gx+v/BrZJInLKssT+Z2AeF3fLR6\ne1gljhxY5Zo1ZRIRb93DVpuHC39zwl98BhANG1OXDiK8SWuKev7ioBZjk5MV\nk3tMohIyGl71qjM7Us568IzHKGTHBVgiNJ6IH6rKlk6Rt1EBGX52yKTzmkvb\nmjfu\r\n=v5Fe\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"a23931d7ca338182fb1e11146cebfdc378821a35","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"^2.0.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^3.0.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^3.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.61_1595553813561_0.10066060837834745","host":"s3://npm-registry-packages"}},"0.1.56":{"name":"gatsby-recipes","version":"0.1.56","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.56","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f3f7a5f21602c11ab41d8d341dd1fb03bcd3c301","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.56.tgz","fileCount":180,"integrity":"sha512-lEd57MLQyBpO3+aoxssnUbwnqFVv8jKIBCclIQONNpLzBl3zml1VAaRx12tnsREn8YEtfYZayM2t3QLiGi9Yzw==","signatures":[{"sig":"MEQCIB3DJP/+X88CWWZLiw9QhUWKsPpJBqIMNgVVRs9NWEsPAiBu+pR5CX5PhTCLeZAY6QDO0+hcmb3ut1zfZUtwaZz//w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGqi0CRA9TVsSAnZWagAAllAQAJ/3BbH7DVM1P8NsHh0f\nrRY3BSvc0VT0HA5lY7Cx6O/o3QZh2UGDxacPoThiPq3ipx6sLkTl/7/mwrKx\nI0k0asjfc0bJoaMOVvO9yNQQGHaRlxqgFLok0yj1yrf7O7vhg7/75yHF5aZL\nFoBuySA/r0rjqQA8dtzlOCYbduL7T6dMShQNR2bY4yrzYmrYi8gF9k7YaKub\nW2kMtpvNVtKpkExQYReBqrupUGUv62p7d+33HL7EkheAeZWd7laflrgQLNXr\nN0KcgK7lWHKnL9vp1z7Szqvl1r2wstlCnC98WgRlduA55/NYe7ds5vcgAD1A\ns+Xsui+kabXnpl6KUlFknFIMtatC/HAwwJhYa5Pp0d1I+pZ+1sMVMhdPH8y1\n5ubl/k5xknGx4C6c6Cc8LelBM/QYuysVpmVjHLd381BCJv+aBXKJ8m/w4lU3\nIaj53cGPgu7Kw2T2wkoGPV7d9VIEpeR2S/qxwzBDlgp7gAGUqfyfeibs10XA\n9P24bnRzy7LM6OQciQjj3CHEbJL3c0jRN+K/UFjIrxSlUYHxxPs9ZwN1ZzTB\n/KSclKjeFQjgNN5DVxXnQgpGSfkMNVGIRl+h4gF11cD1VEAh+Pt7sfeZUF7l\niCpNWjDtw9YQSnj8IqWImb4sVAOq1a9QBOIPinzcq9pGmWc6b93Rn2LJeGBb\n2+wg\r\n=AsPs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"0f2be968c0e3b889650f5fa5dd05692b50cd7b2a","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v13.13.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"13.13.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.23","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.56_1595582644342_0.9787845991463344","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.62":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.62","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.62","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1f87b53e5609b5adb66964ddddc7c9860d8d006a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.62.tgz","fileCount":221,"integrity":"sha512-wfcup74nyYtL3Yu1dpjeO6GE3kUbXmuIuUyqXDiLfBmGMdK84Wa4eaznATAosuaWn3zX3Cmgy0BmDypk5MtNtA==","signatures":[{"sig":"MEUCIQCptk3peVWFn/wZkyusnjkvvEyuY9ereiUB8dHqcSpxGgIgIc0zDlUWRSlazadO04ws2GtWTAEAqyZarw5vvkUA2gI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfG10PCRA9TVsSAnZWagAAd8QQAJd745EaoT6mLIqaRfSp\n40w59KchE7yJAHpMMIZyf2DrV9WC5vVHobFWQQCcY52orpFk778uej8Enldd\nsZhJo0veIJObs4KZ23qtgBVn3Nxp+cFLNfvM3LGEGPHnpf1qu5BPd3GhfmYA\n1cY4cDaVZicr9W/Wlum7PKFMiq9N4/W6joWFYzMS3WhNcI1XIEtZLbzRepPe\n6j/EAS+qEy8R9zGApG0AOmcjgpggdFtawZWHPfJJ5BkQWkWOH66rr/u6HvDo\nZfowWpslUR7jm2+q78BPpzHMldnKD1I4P/IvjWdSkngpLR7O8mkbY/s6/VP6\n2cs+Q6OUGFKIg/Rz9j7BkpRH8FyKuVT7fiFCPNcrtzM/C0HQCkxlu1lT/u2t\nt6ydvPbqm9oKZCgzgvvtuUJdjRR3gEM385dJ8Cis9K8+HBQEU/ISgLGF0Tag\necqbQ2QDRY4sUGIXhBnLet8bwWPyrVVlp7OIsQZmZu7+T/FFLpwFGjGBOdOV\nMktDfoVpEALSxWkzqlaaufTke3FTwIIsj/Ip2Qy0XnnclLLLJ8bDbRaFuw0/\nxii4WfAoAOZF6LntdcGF/v1QKcxzY1JwZNaVn2zSCd61Jh2J+I7yuKuzVsPw\nFOaAWMIV67/KmKibp2Y1VRBeTTmL/BkHGFYmjeCALsMxaol5jUxEzgZwkXdQ\nFpOG\r\n=Hr8B\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"38a30ec3ab82bd23e667e8b0b6565156058ef573","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","ink":"next","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","ink-spinner":"^4.0.0-0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","ink-select-input":"^4.0.0","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.62_1595628815359_0.3798698373169005","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.63":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.63","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.63","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"02d3c05cc722650839c01b2c22b964fe00f20df7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.63.tgz","fileCount":221,"integrity":"sha512-eiJeEPwoBSKqHcWknhbkZhaPSlqrM1sWg4G2nue0IDeslOHip+f+axMlpHeWGahrMFXOo21bEG+KX2l697haZw==","signatures":[{"sig":"MEYCIQDViwgICneC6APxaJW/8eVb8rrqtIjkqlPYHJjTA0XwNQIhAPP24GphfkYMHSVbRZgILiOmJRaGHvzN+axrrvSdnG/O","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfG1/ICRA9TVsSAnZWagAAmogP/1ARkFV74KyVe+hCyHG+\nhhe/xv0cFVplHQd9iUUgwrFhqfotJ7w+LQa7U567OCuOPzlhReAzrLDL9FTC\nLISM60dchq2tY6BVmX1MQ2jBkAaDk95GSzIkWqce9BeZAEogVobIIjihFbdu\n+lBxK5DUifXrALUcEv38zoCLDR+9QaSpSelGGA/ss30M/QTpoMx4J2m+37XP\n+NyWu/977ijS+YciEcohcS9nN8eacLbjhLqNl9fcj99A5ka3s8gqkX40qDhs\nGR1XlOYkZjokDPYtqbz2MByDOsn9Cdj1tpQuMItTQiRGAio/56K+TPXLmu8W\nF/x63G+py2sD28ZqbLkv9h6pvHsID86fxf/OEOZN45B4p6304vhdpnlhxDPt\nxVSYBirWZb7AUSsi5b4ooLwpfp4rUxpRknjU0+r8hrTe8lRaKxdnNruM7MnB\noG+OQVE1asW2P0G9Q/nBANhjKuydLstDXJVUtBkMiODmINvfIqzVF7im9nPX\nI9A8rfFVM0BUCqTxdAWqMEhPTdsfEDTxXSlD0S7cs/jtPOMJKhPeh8FmCby9\nkQcOiwItCcV+aQ8G+LHb0QrH/OK0PAzYOZBjXimUpMZENl4IL0qpzPcX9cpU\nGq/SdiLj86FJ1ZN0puarPz4akIgb7QRsCtpnHt2xDug/LSV1Fc20RVn3Rnbp\n4nlG\r\n=A0hv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"619cdf60a30b380f982d102318abc2b19cd2d212","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.63_1595629511583_0.010252710812238552","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.64":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.64","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.64","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7f354f644f87dc8a6d50997be1e5cbe8091e38a9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.64.tgz","fileCount":221,"integrity":"sha512-IZFUnb2NtFH11D6XEqEQOyWGe5WfC4PmbHHvsXcC3fmTVjhBTiFeyyrgTXMei6AgphkRfQcV8+19R0kXgazL3A==","signatures":[{"sig":"MEUCIQCm2Lpa3Ts7IaC+cfgXzddLHRBJwZ72LB5tkQuX2Pg2NAIgWmhBubc8ujVzB6X5A7qD9fNBThpYYImc18Gexp5gUAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfG2DSCRA9TVsSAnZWagAAsF8QAI2I5l95nwP2LrPqpUZA\nRSDKQBJfD7AZ3yHzPNMieOvaXTYfcgk344VLjyx6+65PHNNWdv8lk6wzekCP\nVMba0Icc7QMhfkFSUbbVxYDEftU2KZjiMA9GTsyoC64Tz4gqumge5iE7IvII\nsteugtCMTD4GN72uNYKteA8P4DUW9gedIAX3mP/RVH+KX06fDEpVdMd0gNzo\nhXD0WiPOSq6D/Fhsl77y9qQTg5tO3M8SejiIiwguGOoWC8hlidEpyJHtsA0o\n51i3ICo0w/P21RIYj3faGOlTJDADOkREhL2sAQkpC05qTgEVtnncrQRT+6NT\nIjInbZ0CGwIXSnyOYdxklaQSTq9AaHnXLO8F3YVtAxd3dCr4Bc9uy2chgveH\njh9JcW7vD+eQyGJSR1Oa5rYm5wrrRADs7vu7Rc2K9XD+PHPHXk2HQKksWpP5\nPWYCvtpCdqTB2PKuEF4i3am+uoRWI0S64FHJCJeMDyfMT/VzSivsac4cOZIa\ne666S+5v9/rI9dHo6WxPMDqvrZg0U8+Cjrm+c+vS/Mdw3tHkvVHZ3hMm6/gO\ns+brHtugABgM3Js1KTppqDUPJo/6kwdxMuhqTw37kg8YQN1Obc3IoLxnxLTH\nSaVGzpxtApThzts0FMfhwV7JHFH6ob6LR4NP3yMFDbmDphNjuPHp4PqsxpRh\nnp2e\r\n=ydRz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2b201e1e4aadcbfd93405ad39d001caafcf0df0e","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.64_1595629777739_0.37062029855498935","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.65":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.65","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.65","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"142d73ac09562f442a373b05dfbf22656cf1417d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.65.tgz","fileCount":221,"integrity":"sha512-G7goCK9FABPYdU3EdAAFHm78mQZcXq3s0n5kyNCjjWZyNaxufxiQu/M+yKDTl9IfuZ6qIV/8WfD/bFd+GjRDTw==","signatures":[{"sig":"MEUCID9F3IvaBC3xdRcTJYbO/395NNPivn0mrr7JHstj4K/7AiEA6eu9j8ps2XuvUQ6IISwON8hIYYNpGI7ujub2HkEy/Kg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfG2SlCRA9TVsSAnZWagAAlwQP/iNKiuntUQqiFsuyuNfR\ngboakDLXDzbXwU9TGtxk1qnU5H6RIGP4s8VCBqAnUj7I/HB+I1XOEWUxDKQP\nnU/177O3gmXGHmZCJz8BJzVnV/KYmzAqsS4v48WSp5HlFEuEPc2qGl/Mb8Y/\nfsyh1cAQhvC9try0LXeosgHPNuJwKxlzgy6LDMT0kZY48vZOV/jN5BUiWPNN\nXx7rYr0NEthtqT04v2e34ZXeeqjypCMvX0B4f/YaV8YzV2YRZZ4fJa0lGCvM\nvNs8p/I5fls8EZq8ZWAhWcADBVQMbTSb1Rr96u7Sb78mbujVJpOOmFlmGw49\nyu+wMHtUOhx5OMKyWQAYUMBIjjGxjXZvU5w3BPLJPujzIx7ELrVWu0izJcdn\nFI+Ja+aoBDZjLvcItHpTPd0Os0w43ubkiBVxYUczhZBnLg5sELED6e1mcyEA\ngkl9jFddmorQTi/MBEkEaoYGIyuVW/5XT60ScpNds2bR51Ia9Kt7Kp7PzFXB\njlZauGCyWcYyzyAdrvwHe8YUFKJtzmA7Zt2nYAqEkNhYOkDW7fc4VTLujGNR\neRBqnZtMYeqJLhIvu+WEv4V0JPt6N6r6PmYgQVwyt37LCSSHkcRc7gsNDNps\nqa40Fo7C7/ljQ9aa//XzpBnFDTGjj38576xzF7qcSyPtnr+CUomSll8lbV1K\nDar5\r\n=vPVl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e8fd60da780e4b8ec635a5f7ead0fdb2a31b242b","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.65_1595630757231_0.7604663093497559","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.70":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.70","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.70","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"86ea2d18f256536090720762fae5e92b4680dfbf","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.70.tgz","fileCount":221,"integrity":"sha512-Ckt46yojTtiE1hjbT1uY5E6XytmxUupjBQ1sxVulGWYF2EHLVaUCzhPZc6Doxl0WLym7RAAtaqEO/GSQ2wyjWQ==","signatures":[{"sig":"MEUCIHU2GTYLn7FqmQRh3lauzM5xGOgfsl/lLxJQpM1zu+CgAiEAzp96Grip+vHzqSAGsjRcMAJHc85sD6uwaJI/TEAHqEU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":930009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH3TTCRA9TVsSAnZWagAA0BoP/3TGTeHWnDotURQqg9ze\nXkkgJtY8LjOQV5JoMcuZTrsCMeTuQaVs/GGhF3uKGG3UKlnvhuxLUQ/TYbMs\ncHXxe69TrWdAiSse/OUQp9iDJlyGY0fq0eZAiL5dmI/4US0fdniR+u1OpqXa\nIShNcYZYgXPhOkcWrRwksmOxep3fGh+HmUwIMgXyHRShhyzzZwKhjg3btCWQ\nMOybDe9jiyfsabo4f1J9dVOn6/AIbNFrHbOmPiQpHCKeUn3I26hIGCnWyn1d\nmxm2NdTcdbeP3mhO/wYq8SM4Zsw5eEWdMouEQA7QOvIvsaCvNoX4DGcLKi/h\nAiOHDinVAbEyu2k9M6sNts9Q9wUhLkDG8VueIHG6XHYcZ5guoIhhCiEYP0Dk\n91MqS1fsSDcVmLoMJeLx1NcJXS4K4+6yzlxA5P3K4LmV4Hz03FSZCcgABCTu\nMVagu4yfVr1MpdPw5wu0gH2l9VTmZ3zVrkz5Hfdbvir7vyh0RrZ43Mx4T3rH\nuA6lK0nwnS4fJOkVNCgMzrCF90nFG6xdc3ScNNJjkMpq9ICeFMSeWHVgJu0Q\nQQjtZeCDQQ5LOcqGNOaw2BS8Z7t1xN1JtRxSxpqYE9hz6iVcnHdlexnz9IkU\nwER/tqaXP/fueP3a199ybFePnhy6TbFJsKO5B4YkkNk//L+nnKLPjKO07B6Q\n6kj7\r\n=AOGO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3a8c3ff40ab6e09bdf4c06e92577160390b04c44","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.70_1595897042587_0.20815652762055947","host":"s3://npm-registry-packages"}},"0.1.57":{"name":"gatsby-recipes","version":"0.1.57","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.57","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"965b0941fbe7606186d76cb99e48ff35171685c0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.57.tgz","fileCount":180,"integrity":"sha512-r+WWfiNl84WRT8hzOsG+SImfuvOT/XjfigfwihK4CeYQ/hJjZBsfpKnkXsxkSAZ/C7OGpeOqv59vKvKCO/XT8w==","signatures":[{"sig":"MEUCIClX8tQuLM6Tytt5D3fc+ey01gbbGIaAeo6xxkOqWC4sAiEA9GbYZsIk+dyxrkI6teL3EGnJzZkdsFJo9l8TxsWeqf8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":411819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIAhwCRA9TVsSAnZWagAA1C0P/0bF/CbTb4OaHeXeBivT\nrLSvTUWVXsrvPr5i+sz2XGSyUPYM7ut1tDzReqSGlrPd1ubff277otc2DEQo\nX2978/pfH4na4s19uO9/XnkGQaQqNp9zwz/1rcknC7aAB9RaDqIWBar6NdYJ\nbRoxK+7ngKPcLJJlEyzllsOAXkgO4QfWIlgFruJ7ezM+Dy1JVLBlASeikcsT\n4SZZt0f30XZ5r/gLsxaPx9A2t2PVChPBTXt6K2TCBdPUPrYvf0HZ8Lumk7cC\nenDI6hoHve9jI1Dnx+yrf/LhJJ6pME1X/lW2nk3ulMxc1zxLaKHrN7UgzxFA\nhXiZA2RcH9gzkEmZL2G0NYLMBJbyjQXdl3kuxhXtcueHsTVXCJpHjNjz+AvV\nncEicfJ4G5CejNPgYuj0kx10Mzb/6i80gFzbdH0mZEPPweB1+7NVqMj4uuRh\npoy0SqAvGtLZiUM6iczKhRuHKxwBQ+zyAstC0Esjd9vX9qsyFVZhqZaGlDaj\nNDPthiHxTp9Sk8VuJduIFj+pW6mLvoXig1Ctgqd+pJIwG2YI3GRUfZhXzAU7\n2NC3a6qUHQGipjcqh1GA6iLJL+UTdtCjh+xN3wynIdqUmAw2ZtpnGBVj17fi\nRj+GKn8K/3nnm+ioXeE4gULOwvGErQkajRTsuoxH+DZZyAFdInAqeAOhN1Lm\nwBw2\r\n=Dt3o\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ae10d6f0910e98bda55910845d0839f76fdb150d","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.23","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.57_1595934831710_0.17082175316066706","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.72":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.72","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.72","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e92d9e22459633c8357d3e93a8bda42794be4ed7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.72.tgz","fileCount":221,"integrity":"sha512-CMHDOqNp7tbhRcA9OkW8mV5sfaEYWjASl6dc1F7HQ8OK5toZU8vDgDVhryTNzTTFEUcyxlQpqv8JWmHe2o8x3A==","signatures":[{"sig":"MEQCIGRmNBEkJQ3AD4Ob3RTwMzTYXR+adeWdevK9dpRgg3UaAiBLKViEitwxfYk+SDR1O5WIfNPuX2Ly8NDIJ3YjPEPBfQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":928740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIKgtCRA9TVsSAnZWagAAy/8P/jIws4QT4zCH43E/xJjv\ncULhIE7Ioa8zLM0bWX5H0UNVoT0G+gCAXS8d+hip0QZoFWGt3Ccqft5J34y7\nH4M9uUmzVwUOjfvqkeGyx49WDSKjyihNuU1hMO2URi42rGew9TesaGAfuAq9\n6cx/dtaVXduOJs6OV0G/4OUlUxgCfoX8tMps2r+126ob2LT+dfc/HkxOHtcF\nUEsuBZOicEoLJ801fu4VjcVOQIbQuwRJeAsMk+OM9eN+Qb/UWyLWEr5sEHVE\nmT/GSVfyZirBtorFhjsHxdqwcGRnIUS8HPP49wUEvkvn8NMUkVQ+egHesitN\nxoG9hNcsV6zMcsKrAQQnwLrNJbmq83mppNuI2f4RlD57+QIAb8BaWfmi77Lo\nwXzupsKxtrK0KiJMA7+m99ysfbex5cwdMSMTXD3fP3NEqTJKLISU6sBt0bWA\nQK4/bavmKJN0tMtz1GiZuGihSU8dFGeLsHp7MeVLsYxK+AsnGZwf5CgMcvK3\ngiSZdCmzVdLC76Vr5Nc/f+MJaCAMoFU3FLD82gCnJl7xHNX0XWEtQksFdS8P\nWIpxbSm6JYcJ7kGlUlZfDeUZVHfRcy8QnJcQtNTc9DgPRGcmOjkE+f9ubUNo\nllIKf8iW2CVWwMygMh+RXEAd+KLasMy4qrCtADK94Y2bPeOviyxqakSIWpQ4\nAsPJ\r\n=9bFh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"aefd541da5630f7f6c5e17bd6f0c6a8251941a61","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.72_1595975724500_0.6317089471574171","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.73":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.73","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.73","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"aa7c9c67d0688e631a9c794f34024b4e98a1a3fc","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.73.tgz","fileCount":221,"integrity":"sha512-2ZdIu7egJZtIonTZpKMQA6bDIEyaIu++scGffYqSZmhFVUJOXK7AzKzuaiDADxseI9ATheJ12hc87RefqDqPVA==","signatures":[{"sig":"MEYCIQC6Wowc3lQvLF3bHfGGi0kMkRvEev/XrSxJMNe79ZgBXwIhAPCDyNuSu5bNw4gPaPSWRYSubPLJLhevz7h130d9mLxp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":928788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIKpSCRA9TVsSAnZWagAActQP/0JN+ZnxUtQtJIzv7seJ\nF7dbVBD3qi+my50SIY8HTOtAnorYagKMK91l/lgzpmNmt3FhhkynnPZiryS2\n/XezdSED7iMSaEg20AvLmY+FztKIaeK/nKTMjlg11m015cqN9GhNx7GxzV7t\nNqJ/3x3IV7D65ws97Poq4Nstgy5cuGIe9yieVjQY5y3bYowRg1SK2796rCDm\nnAU61JujElbSmOKi3EhPaLfxaC93H7urIMX8+PwC9ZbFh+LYhi+sXyubQxt1\no9qLs8b/lIWPXoCVFP7msDAOqruPRvun/R4Dps4GY9aOMpwBWetVPSzuzDxB\nbqcexFbPwZavZgLXbNi1o6iHKVFp02wjDvSW7MDt7Yki0+S3jQoiOQ3BL8A+\nmXqQAyz6+0diPs2tBcjWKHrDVk9A55aXg0vaqsj+Vz9FQhG3bM5vJe978+b/\ngfNqlhIfDguuHZeys5GiDJXBUydS9kOO8tLhh8Fi9Trjvf7pOF9aQk0NpPBB\n9vYTuMp+am/qWu6Nn54VbiKLjanNoFRvy34oUZ67tMMtpUArtAAnZqJtbj73\nw02ZcNfIUWZIqBgi8MmAh2ufFRs/5j2BrwuOuaesZXxJ/YAh/Pe/LNjlYdeH\n5T6PsBZ6XWeYOfEz9DX5sp/ZQL1dB1gDpNtGeIL2yoVadVTnn/upTm5P/1n7\nm3La\r\n=PDCn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"124aa9a66aba43532a97da3ff88b1420da842c38","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.73_1595976273574_0.7797034315064577","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.74":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.74","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.74","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f6071af73018ecf12d7d40d02ab4904383b85d5f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.74.tgz","fileCount":221,"integrity":"sha512-31ZQSevFpTQDbaAGhVXP1NhsoKxTA3pvAnrWSeJWtZOk3PBId9+bNyMrm5Q14pBaRNQ53RWQa+NQYttla7FclQ==","signatures":[{"sig":"MEUCIQC/9cZ30ZZJvvwN4H2aHI+OQHoIYO8+ECge+FhDWMXhiQIgH/FNGvFJwOEDmdWu28P7yn42HIrI/r1bnDOUgeXKv18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":928850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfILAkCRA9TVsSAnZWagAAW5kP+gNcLv+0kxoqwqq//4qu\nnz6rqd66eenA0HNk6Bt7FQDXUJkWX67m9X5cGwOpS3GuW6R0HkPBGkwY3Vjr\nYWgGJ6tqZPm3zKk9nIdNQu8MsczrV4pIR8YA7VjljGwwOAtbN8ynKUhkAgU3\ntpjUN50rDK/btmlMqzqIwlTJJV8KUTNM7VZyywUFe7HTgPQmLeVarTxlWT9F\n/DOuK+83XQ0ZdAXmQUoFZtfK6EFuR+GFOYD3Q5zaSF0pZA/CuzSEx6FO1zVb\nO1286manjK0GUIeGZkydeHsrelpCYKgVUvqm5PVMmAdGvX2w9IWXZAlo1rn/\nF0v8p6Y+OcsQuMde2MSiNbh9YK+0MWQugkEWeSoMffWLNIQCDx9jW33Q1sgS\nWaMf4nuLVJk2eMANqy16osdnz+wF30ojCu/g+I2u7vEXARWSdAq/KU1I4TmU\nY4xVgEObbAnXKCSKdc+ByWH2RvSuQ1NEsPIOUvnYpWHkGsslggge7RzUJWYI\nix07rSagkCRdVYD37a7yTPUk81v4PKWs5YVBF8zT5gHtN6POas7YbF2BYbeZ\n/0h8mhaYM/usHDJQW3YhEiy6s4tJ0/ehwZEHyznwJ1frHKXI9pr3RdcpI7Eh\nfgPW5VAL52dBbMBjBaxPA/MDo4fAjNG6MVbRvIBxnPo4ZuUg4EkwRKnUCEWx\nBvQC\r\n=Ew8W\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5c3b082831e50278eabaf5854547713e3c5e5ac0","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","ink-link":"^1.1.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.74_1595977763586_0.49414598774756824","host":"s3://npm-registry-packages"}},"0.1.32-recipes-renderer.75":{"name":"gatsby-recipes","version":"0.1.32-recipes-renderer.75","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.32-recipes-renderer.75","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7000e797fbf03998d8aec64034c02569badb0cd1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.32-recipes-renderer.75.tgz","fileCount":221,"integrity":"sha512-AX6EeDKCAUV7eK9huimmXsfrCqRxJoD5FmwG2DuHea/RnZ3iL7YF8YbHobFG+m89/opMHUHmgwWhhXnAzfKs9Q==","signatures":[{"sig":"MEUCIGtbrsKAwwhpspusy2ta6KDYbEYhF1fTYh+HKTWot888AiEAm2HuhWb9hBw5hGYIuEb7/UHNvySCFPz2SQRNXT30qEo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929687,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfILfLCRA9TVsSAnZWagAAeZAQAIOIE1xDgQjMNGdjW96u\nRhRMz76oJ4zysbyDAyyyywwX+kD21tQy0LbX3V5Q+J2djrNOLyEePVSh4myU\nroWl+krVa5Ay9hPfgEX8KY3qjhKf8P3XD8a2Suq/aZ9tQm4pcaY8zAg/Ni5m\nTYVfYVw2pQpKjrAbYcPv62Hbx0lLDJQ0Y5huwwBmmKH8U2Ay3kCBg+rkNfY3\nJj+Qer/D3LqDeAhXNxnlJFbOEQwXunopkqaQJX6mHseG+LeOWFY2FkQk+aM7\n9Hg7ckLBBMHNETXris2aN3rZJ56URI7B9EJps8mX3JA9rPIj8NnXR72066g9\nvBZzGv39dXfQlT7HG4W+0xsDHbmNrOQ9Mt5WpOd8XZ39PMZVVtIxuSCCqxY4\n3kRCA8u4E5/sNdVOQS0z+5Nm3vZDuquoeaQr3oh53hfuzc1sHxyo7TsIud2m\n1HfIkI91ba8rYoLhSlYm1NBYf/n+HsTeJ21tHIJsESdxqLwSxrFHrLzh7l+0\nSTSjxeGGtXKSLkkp4bss+caenxIjnxNNc2zNrkVT+joDqeDgDwIBY5zWv7ms\n0rTRLH8TbniK0mz+t1nMXn9Kp8QxMzOo9GY+MqyhwBVL0h17ALxQqezzf/q2\n3nuUZhQ0hQ/29PR7V+5c7fQHSHPPd8N0gTd3kTxhTFu+S92GaKXFheXJLE6T\nxqqS\r\n=jo9T\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose MDX to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package(s) to install. Takes a string or an array of strings.\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, run in a terminal `node node_modules/gatsby-recipes/dist/graphql-server/start-dev-cli-server.js`\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0e0918f4a567cc2a9f612e40914d377a0175e6c3","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.20","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.12","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.32-recipes-renderer.75_1595979722469_0.7918110794811091","host":"s3://npm-registry-packages"}},"0.1.58":{"name":"gatsby-recipes","version":"0.1.58","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.58","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b114644e26792a10e9fb458a69fbe471a036dafe","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.58.tgz","fileCount":180,"integrity":"sha512-POU4NgHF9R6zJVfHto4W/T5hxJ4eY8UIv4eivRP6b3tVHixXktNJ0ikHdEkZdCJFmOsFY6ADUhEF+ic0NdPkYw==","signatures":[{"sig":"MEYCIQCjfn1nJseVDAA6f9iL2zj3aiKzr/a9uoqiDfiTyhq2NwIhANHe3tdxW29beWb0y5lhtMp7VKxf532XLVt0N1yj2SY/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIuIJCRA9TVsSAnZWagAAKg4P/j4Eo6YCuQ0FODWDMyQr\nUbgLqIdFcuqvZkYw8JVew24uKqGW2m4iGKsafH9+9i0qLLhz4MVopuLquE2f\n2HrZvDUrnjPaV23RujXG/R8KM1b5q3fpb1lPi1ctEaWy/PCHwoXayKsjLljk\n/q1GKqMT+2w+Cdr8QHjPBSoiNUhtsTMG9ANjTdsih/WEvt8j3o8+2ZgjbM7/\nAEhIdju4ycyWj3ejDI74Ir4LDd3EIPETtJKPEbaO1ZYtuFrjqLAVGTFUbevC\n3viUeTuvrEHMci5R8up3qvXjJrvGeWL8bTI6H9B0/OhucTGaTxgcBy2deh8x\n3hN82TAhTnqeJVtdxcx0AmDiE/svqL4y++yJx87RlnfRe257Rev1aqoWpcQc\nkwKk8kcZeSe+R75MwJ9172HifKJMXTFTLas/aTBK+HjIScjLo3gNgB2DPQ8R\nPZItztCgwiWrVKc8ZdTqnV+Dyv4diq6uvAl0DyPKMfNy4c39Iuf9sXvcGCZ5\nES0werjiSOB5CxMeLUdoLdspkRrqsf6xI7B2shBtQ6gBfvawO2oA5xCHZ2ZO\nnZkpBaDoCOYu+2Z4/g/C2Y/krX3MbPGUnN9EF9zYZhTztt0j9EEpzWCjZOCE\nefRYiDypGREM2qaopWdexCICqZDpwPws6ZMnxV1ONFKy0By6EsoIwR76jYTP\n5+Tc\r\n=CfRc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f57788810b92978bc0d30c0b4b14ae2a14f6a032","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.17.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.24","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.58_1596121608622_0.8869552747340479","host":"s3://npm-registry-packages"}},"0.0.7-unifiedroutes-v2.135":{"name":"gatsby-recipes","version":"0.0.7-unifiedroutes-v2.135","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.0.7-unifiedroutes-v2.135","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"335df66e8a0cc1d1e947d7a23694ab13689460de","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.0.7-unifiedroutes-v2.135.tgz","fileCount":180,"integrity":"sha512-fYKHbnZPjKOPc9twUZw3hRQxWuTbAwsCvJMxUrtZ7oLpzCsjuzNI90BVhPTHrFkANWnDR/mDQjSbeiJUquKS1w==","signatures":[{"sig":"MEMCIAvD3jh2K+2cGV767mvPBzuxDj0tAESlZaPKXEugJCoTAh88GrOMEximq7aTGE3lPQJMoOeJT27xNc/xdUJHvspV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJIY6CRA9TVsSAnZWagAAebsQAJ1frbhqrp4kecBxnYRJ\nfp2+O6oz4k1TIiA+cXvAXGt6Fq4CMYJUoBtZbx5ySWBP4+iuNWOU7pLHzPXh\nCCVAOrZZUwlrwzKNxYk+CcWTlhramTwhPWRUe9VKaKkubz5T1MJOluW1wIBf\n25WHeaTelFt2VrM6zQtEDdKSxThZAC7B6cm49iVjfHPBA70ewkp9PwNbmsMJ\nu9s6KJLFnrpQejdbQfQqrRcFStbWvuaKACfgnzEqB/1n//pPOgGTYBMhpah7\nEdc0w6+HpKnIxWg6aEUBMFK+ZVtzYIuPEq4aHOs8Zr2NQWKOrHAYUtJGc+n8\nh5XYm6O/gZzhC6i12FaHT7Db5VdaxSQm7AvepqC19q2m7PbBaD2Amu/0483r\nAB7QbrqJPFBX5xcP3nxbT3JE3qwKMpyHrptZEK9o0PgXHZ00oNwBG+vbrf3t\nlZGv3+IZmJ/kLvPI9UnyZtCTwsR9FjIsO+sJYqko5C6LN1wYOBCtAaas5AWS\nE+Kfh3VUt3TDpeYGCU2vLSUBFA4mVcGdUB16/JFVq1PTuNhmXnKDGEh1ZBnk\nBORHE4dp5EaFm8RuBNhGBmsXhr1EcxdiANLK9Cc/TejrhX2pGbbImTfcy0t/\nSr6bEEQzm6sQoFNNjKjhkH8xauOqTCVhUfrsOUphnz4GUKp1d89jem/VRFyZ\ni4sX\r\n=fsjO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our interpreter, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"adff3cf1c96af3d8735a8d359ecbc2e8825295f0","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"1.2.5-unifiedroutes-v2.135+adff3cf1c9","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"1.3.14","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.0.7-unifiedroutes-v2.135_1596229177718_0.2812080348249595","host":"s3://npm-registry-packages"}},"0.1.59":{"name":"gatsby-recipes","version":"0.1.59","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.59","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cfb2a559e9b1e5a55c1e05015a0eae402ed0cf8c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.59.tgz","fileCount":180,"integrity":"sha512-dVVxxpyFT9G1CL6TN52HrRXVG1q+06hWGAU7oZiUdj/0+bcCx9ST2s9XnoiqdFTmXm2rIKjWpBsJJXiM0p6Dxg==","signatures":[{"sig":"MEQCIHuH5dcGgLliuZU7vACxkJF3vg4jXdGOaDTxnbhRATKzAiAxtszGrS+O+9VlqxEwioXUgoHxAUS6VJjyr+2l74/3SQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKADYCRA9TVsSAnZWagAArYEP/3hI7ZehydsLmrgL0vvz\ny2EF5TFRgT5Gu/V2bMyzz0BPqzTC0OsBkZ/QiulgVSb1gPoQejhpjkgXGCr2\n5FrM+YnzBW9zpHG3hniwsp6AojDvFa4KFkU1RZHsbiGCdaPO553wueawqUuS\nYSKFLJf3HPTGtQqtjToxhF6ZNJblTmCzFk1DuOqF55xhfYMUDQDRrTn3NYDm\n6fvlcndT8IGJjy2ot1aVyokI/RHlE1QnEPUJVZrBhYxN0zWhO0ZvnoGvdK62\nit/hQzAFSp1iqAXyeEVWWnqGOC6w/xs+x5wSNqs97N9dBDvunIXWk1Abvtjt\nVcg3IGsP+teb/c/PjhVK3d+n5c0IHBfU1ikPOnb84bbtTgHaK4edu08XOP0H\neSkyRNjLtvzUDVYOjGZeZej9m95QEaSj8kci63wwWnnm7eR8KD7J2H7R1b43\nWNvMLnPuUqI03kYHTaK8zJ7vL5q1lZSkbaW/w8ojJvUY5U8kFdmoml0q8rWk\nqyQea5UMEiC2AJTQWBA0Nma5Pd4pT6mnl38LQpxHkDRRBxNWsj8TKJWmfpWz\n1CIyfzijj6lSEqjv4kwMKzqdk0jNkWO0RQxx6ePm3nmPzQMKzVLePZLR/Wjw\nH/Ky1dXgEVCZKKG1WMwNPIqoqDeYQNcFSHw/wzqoinGM9ka4HOBPjCcgzdx/\ni7s3\r\n=Ccsu\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"9c8b442de042ace9f728b9e625eb5b83f7d4a597","scripts":{"test":"jest","build":"babel src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","watch":"npm run build:watch","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:watch":"npm run build -- --watch"},"_npmUser":{"name":"freiksenet","email":"freiksenet@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.17.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0"},"_nodeVersion":"12.17.0","dependencies":{"ws":"^7.3.0","ink":"^2.7.1","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.8","acorn":"^7.3.1","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.11.0","express":"^4.17.1","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","fs-extra":"^8.1.0","ink-link":"^1.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","jest-diff":"^25.5.0","@hapi/hoek":"8.x","node-fetch":"^2.6.0","remark-mdx":"^1.6.6","strip-ansi":"^6.0.0","@babel/core":"^7.10.3","@mdx-js/mdx":"^1.6.6","detect-port":"^1.3.0","ink-spinner":"^3.1.0","resolve-cwd":"^3.0.0","@babel/types":"^7.10.3","remark-parse":"^6.0.3","@mdx-js/react":"^1.6.6","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.3","@mdx-js/runtime":"^1.6.6","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.10.3","gatsby-telemetry":"^1.3.25","ink-select-input":"^3.1.2","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.3","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","@graphql-tools/utils":"^6.0.11","@graphql-tools/schema":"^6.0.11","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.3","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.3"},"_hasShrinkwrap":false,"devDependencies":{"react":"^16.12.0","rimraf":"^3.0.2","@babel/cli":"^7.10.3","tmp-promise":"^2.1.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.59_1596457176028_0.6053629351519869","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"gatsby-recipes","version":"0.2.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.0","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"366e433249ec1c1cfe7e529b23fa320dc77da9a5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.0.tgz","fileCount":218,"integrity":"sha512-XO1GAHqnIUI5T/R5a/6ZZhFGvd/Wag3CSa7loLNC6mv6GXq3nbS8gEhIbNfamC3BTK9r8k9wRteerCpF+6jvlg==","signatures":[{"sig":"MEYCIQCz6/PTwB7Gf++mayYov3pXz/IEX6xwNyDpgR+T83EK2gIhAKzRw5cwnGbFwf16TAr3FDuxqq2/Q2MUwb5fQKq8VIhY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":926176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKH66CRA9TVsSAnZWagAAalMP/04XVUSnVxoMDAIiJ3yI\ne2iXyj7FK2Ul2vXNipiSpcPd1FWq9WEEghAVTW09DWvftXJsbz1W9ecDvQYO\nvJL+FKE2cAxe6z48YiaCkhHJgVL301+oAieqWpmlYpCf103Ibntc1+KLB0QC\nRFLJ/RS49GmYGuDI0NCwwxsNGmxLxoG193gIpS4V+YYiL2UsVhu99QcQm8HG\nEth5I6iHsavCF2BJ2rlcbQ6YcSbD1Z7l4kofetir7MfHzYavwJwjFVm8nV/G\nFDmMxIWFn+ksbUraHg+BuMO8caij4SSoGLfyEka3TgAop+clUbd5zYv+ciid\nJpSXjwxlU0pX2NSPMd/siPB48CY5PCZdHNLaxfeBp4gq/mcgITab8rDv23Ve\nQmcQM3P+zau13aZ9vkunwymrPVwwU1PHhyAFFn/qXITa2+H5YHZyasfLG5AK\nS5O3fEs6uFzDcq4/05TsDX23A9qdrRlYNhngCXUpgfiS98+cq33NGRh9M6Jx\nezKHtAfkCnbN0fjKodPGnHZYa4B+P9CQBOB07+bizFj/fmhQ3cIe8AEqCWIj\nm+qCCgDTdmHbqSJw13YZd6K2zLke87FkM3Y4Jm1xzfa+RBzE7OrXqIxb14J7\ngT+z0hIn+pvfxoiZrwWBpSJdXQI+FyoS9DoHYz/qKtg5+gGlEC7ZypqVDv9H\n8QbV\r\n=VjR8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"911831abff444a6ec27e3c8d0de6d0fc23b71dc4","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"johno","email":"johnotander@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.4.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.24","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.0_1596489401307_0.4719187091533874","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"gatsby-recipes","version":"0.2.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.1","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9fc51a6b98bb8977e5f26d8877322407d6df35e7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.1.tgz","fileCount":220,"integrity":"sha512-hsWqERnPnkT41hsZabnTV5wI1598qv2+ap2iGgPXRnF1pIA7mnIBIFEMBr0+tIlpyDQrdnfenaRE8tzj4H83YA==","signatures":[{"sig":"MEQCIAU1pTF+dtdstBoIjwx6eHlfAk2K8cvaWawKbez7ZxTAAiBkURb0+G9V/s1dO5a38QODJK4Elof8HasD8D91Vu3b4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":929161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKIywCRA9TVsSAnZWagAAObYP/iLvZriTv/Xj6NfHTN/D\nE49RtqbO4ISyoakV2OFWE4LG+jAUWpvWFvE3h5P6hdXO7myqOQmE+nRjfQ7e\nUc8PjEScbtVB32WgxHxE3nD4eIv+EReVstZpAE0Y1VotBaZiXdZ73Qo8TXNu\nx94POyf8m2wSodly1Ic2Dwl8ExcjIbKPH9Gh/fgOsce6c6Kj38dyCovyUKOo\n2MkPNQSdhN2mqNNTdHairyf6yJ/FnJ+6V5ol25lAoj09rv/agjC8ay9HUXQm\nx6+UX4XQNoLg1vNWw72Pu+JRUcLBr+1pBPTmghDR6jyMWJLgmrmHk4eNNugY\nJSPTk9nmmCYNf7upfZ1REwxO/Fwo+IDht6tJ0b1kAM/uRN4T+T44tlAi10DY\nZXYxL5+4hKS28AnlFaEBKfQt49G2j+95nXiiMdXiVYEI8wS8XC8kI53R/Mqp\ndNyfzNl7U7pZUTI2UuFb3u+5gI/ypBJUj3F6QpVFED0REtdxZgtUcvQgOkRW\nxskA8zsS9Rdeq1HdDiz0dN+VBV4s9Ffnzznl4x0YIGc/YRkMJOF3VpPig1SH\n7T6yDIIaN5LOx2tOQaPbDacw7iGACHW9QuymyjTjbNlWkMM7wGrPY5M7lgPC\nb+hDlrFZbglRLEMKmyVlDsPEJfqoGCnkWjxOF6ZfT3OAT4rh6a+2fUJl6Erb\nYZaU\r\n=G6Ro\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"2016fd43c70bfe6b1f865e596003f82dff1479ae","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.24","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.1_1596492975237_0.8342488238260224","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"gatsby-recipes","version":"0.2.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.2","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"59c33f91cbfd33dadecc1d402a9e897c464db380","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.2.tgz","fileCount":223,"integrity":"sha512-RKa8MjGAUOfVgN4OFGMGwlm0CXLDlOAc0g24Dfb2ViN34g1eXjNupL0UeoGFu2HxzMddVqIKSWe0zsnpj5Wy8A==","signatures":[{"sig":"MEQCIAXaQ4DIwf0kO/xo4nOgg0OSbFOnWMYHco2+PJpjTKZeAiAN/0PmWvqhX8YQgjn0OXZ98wbf6MMd2Uc5MH/H/VAFHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":955048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKY4/CRA9TVsSAnZWagAAs5YP/RoxPTjueqDHVmJhBtBR\n4qlJqNf2GWz4kiCQ1325I6sX7jP5XLkrkqy77NV3zaqkMNQEwmMcnHmwtzKy\n8ZrjbOOHdX5BjdLbQEU2Qzh6OzQGSpYHdmN95YAk+YUxxsLumg87+Dk7sK6Q\nltIylVX5CA4MS6HfHPBuU4Ptk8QtJ4rKQQO5hOdKzKUYky+pdp/VddA1OKdz\nTXzIdUpigN35cYfYL3lm9V8YTHdzR1w3tKt+2dPevCCEAOtD05MUsln3eAJY\nreqqtXqx6QakjB0d6K5JDifDCFBml/NZRkiISFcBqpEUbFkjO+/y8CB+RPjV\nWDg3K9oUBwaRch/NZFlJLosSvy/P1LFKAn6JIvxTCS1NwgC8D5koY8hjKRkR\nUxYBA6VjFWYZy6ercvWELQVHJ8AfhACnw2dGNqN9QGLV+0IygcJlPAWO194y\nk0h2IFWudOPTnTMMcNLwfY9KmBUxaWreoJB1Ci6y9fu/PEr3ISEiE4Yzh8mX\nxGJGJxMJtmntE6UKCyouzhIetCv2ONxlnR1rHXtig3wUhRRhGYntRMQQAOac\ngKSr4THt7MzWvW5/uIR/GkXRslEZf5aELpixOCPkV3UKqaH+xGkq+B8U27kw\n8O+TSje5DFb48Fyp04G7+FPxbopnR1gUXqohhk5oNnAWQDp8Dtg35mjPSR3+\nHN4Y\r\n=sl07\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a33e1f95be8c4ffe7e6ecd489aee2a78d2ea0a67","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.24","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.14","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.2_1596558911213_0.88712048345435","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"gatsby-recipes","version":"0.2.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.3","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"854a3bf72edee218e703659dbd673d8cc62612ec","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.3.tgz","fileCount":224,"integrity":"sha512-nr3cTVEPXCNmo/adrALuc5B19pBLCqeAcKGpLPu+4GutVdqBY2HmMAstu7it6FbrJw+4PbxSS0RZoFD7oxggGA==","signatures":[{"sig":"MEUCIQD/+DDkJLpH/x78r9maP25TsetYXk9ibF/sqvu9oDNZ3AIgSf+yPlWPINlo4CmcomKaqnXCRAxX6jsI9ig8v7k4sKc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2199541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKsO7CRA9TVsSAnZWagAAbUsP/iPHoZjs/VdZ7LSNiWah\nEVYu/hSw7cZsHr7NYwr+mlKwJSjG/MhS4R/XtB64cSWeTXYykYGgk9zRcQth\ndNfCpeAJB0gHMbdyC64bMD+/1HAOPzZAWUTH0qjxr0f6b1B4fq080xIWDkZN\nbpn3UIma7foFnFal+INYjkjJLxUAVZNcdd60bYqVLBP9wo136e25poahFl3V\nKNGlJvVxCURVldo01BOr2pffIYuDusgbPtBP1N7EkuqrsN6ffS+bxCCLJLQv\nmJ2vRr7hhgz736BuqEFxEujnPc5VQ0zpXChkbVteXglaZss+sK8OqtXA1ASr\nb6OyQfmTDYlHsesUmgld7PmoevKnknS2t2D1msIAkRJQlOF3dC1ZSOpvJsaF\n6i91CbmEsa8DMv1H8BISe8wTNdTL4HqrHFjWiWwMvWaj0WRXHXzinp2hKBft\nYcOJFam8woXytT0rn1/ihTrpTiUakPDvUB8FLzQGzE47iQ4akb93BtDOrMfX\n8ja/GCrt2+oMwhm/J5rHz2OyzxQR2VXE6Fi/nrCcTCYrnA7m5EAI67ag9VF+\nfTM9OMQ1h1XqcJwT7PQ2x+PxwpNhr7x09fRFnznJX3XHOD1nIQzBJh13bJB8\nSRfdXGRziGC2zZ23vnOO2+CHAbmoTBa1MUkg6AfD4OKQjWPZZiX+Krg3VnLd\n7VAC\r\n=eg17\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"2fabba835f61232e38d76a99b7d15c53b66e5214","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.3_1596638132357_0.076505552246942","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"gatsby-recipes","version":"0.2.4","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.4","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0d235d3bd0d15dfc73d22c54ffa4972c857ec0c6","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.4.tgz","fileCount":223,"integrity":"sha512-zalNRA0bcUn9wPnVhudh+CpFt/WuejTNzFc4fO2nzpyn7VB9ncgJJroHaXu0G7qMHtUdvAaO3XFiq34Rvdd0Eg==","signatures":[{"sig":"MEQCIDtwQU3+0iSCHejNb0wR+W1OK/fqwVKupPVmfo4LIrrwAiAyjH5RknLtQfN/PBNfrI56UB+AUy73/h+WpExNCD6Yiw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":957459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKvSYCRA9TVsSAnZWagAADRgP/2PJxvooEliiyzXKV3Sp\n8E2qfNoDf68YmjCGEamjCnfJ0NJGhGTHGArN4nGIJzeVZF7hb3TXvSGhDt1e\n2DKwD77ZkLKPf+xU1Qtet0ssaDLubwxwNHW4j1fJNvVV0NDdE9EDfz3lK7zG\nVF5YAhz8FGlwtswugt90RYR3N8MNNpXAh0i2dxPZk5jeLGRQZOTKadp5HoBv\nYOLASYR83sj+gO2z2WgPjSikxUdY69EnC3SD/e5bdHiHFQ8n1Pp21rZpfJJa\nGT01Q1QRcRxdFRYx7alj8ijPn0I1KqyHbQp92AGTg4yQJLuyHcMF31VBilKA\nqwrgv8KfQhrBP27Ce+fRJrUCSfDW/cNzqZbbcqsCZIJj1oJrw2LV3tW4j85n\npGbMWO5G9Z2EFvHtBaqTYLaFPhbt1MA9iICwZBUztVpgTzYOSsYg63kWoELa\nQ/Vel1gVhSFELvZhJswG+RzU7lgO1saVCGdaS5FwEtbcpoCdCx0KNDb1R0Yj\n1Lv0NND86lTxe1yStX/ozl3v05p4d+2IGg4RDgUc+6uYVkmq4Cq71LFzwHqW\nlTAGuzfD7Cu5hl5q9MxMR1JApx0moVI1WqcghP8xzMX7TulVkG0ub02tZZ3+\ngTEFPVIesYnfZAhHOOzFnhaRSpt8OOdt0ztTiNbIQ62cooLnCMAvu6vbzPxj\nYSo+\r\n=OgYl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a4880def2ea4153061abc63ff21782368525fd6c","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.4_1596650647760_0.41192688660656507","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"gatsby-recipes","version":"0.2.5","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.5","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3835c62c546e4734b75f2ba23c47450f23f8e682","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.5.tgz","fileCount":223,"integrity":"sha512-+gC+n5LhWh+2ls6QNae/UZEPgJ0IJ3oYqScVzwa6HSmE2OVqgWykpYS1rmpIeYrPO9S3vQeVrRG/smhrSpsc4A==","signatures":[{"sig":"MEQCIE9zH9F7HV7FLomH/PC+HyCIkkQq2tmuTA17ZvZXyDArAiAmptEHKaveWHu8Ty/EUNPL6k1i8YNZJ8iyfXMbT4+JuA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":959328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKz/pCRA9TVsSAnZWagAAm4wP/2yp1iGPn/gHN1QB2bmm\nJYtx0E55QfLtjbJ6wUYkTczj3hoFhwjieYK8cL/m848KajuY9MS++2N+wASF\nyRw0Wr9rhO2rvZvcguUqmcj6cuHCVlDA6xtedKtRyqcJkO213sIXE9hVj3uc\nMCMRdc+iGUv1XyFdh7hVkY8WkhQ8co7qdGdF4b1Z+HYJBxGl+iFXFGv52KPc\n6PTcnXrFSagodM62EI0iHqYLUXKYdJHLVvh1zdt13jOEBe2aBRSZI+7c3UWq\njKPDxT6KuyhGfwJTCcFBgH02oB8M1GjuJWtcUmkpW6q6jKAb2TBcIyN5kAO+\nXYdoB95mrF/As73foPEVCWhtZF5j3TeNnR1xERFW6ACqNfktQFk8Ia/nHdBn\nV/FDJC1f0bEuB8y4FTx42jHSnGHGJlSXmw5+9Z3Qs5HvjfN06AUsKqdfG651\nIq0uAnmJh1FiYuQVDvSVzWb6uzO8VJG4t4WkQ/KAjnoBntRonJYTF6MhY83f\njQU6H/SFNcDLiFhgqFKMxxK61LXomX6H928tsDB62Ay9OwhXKZiluTKB+9vz\nrZNpGQwv7pHWuQQEkxuH5qP2HiOAeHKM2GfJAQLD1P/tX+EYN5TH4VGKcR3X\nu84/G4G2T5c4wfBwwz66IWnNomHeEjEs8Bmp0NIuT6uawBVdDtCeZnSBBvA+\nAAZg\r\n=HPwQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"1c72df3dffbafb38de4f214c9eb69aa15a2c61fd","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.5_1596669929264_0.8513045684979113","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"gatsby-recipes","version":"0.2.6","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.6","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0370cac41aefe0a631c1c52ba6293e15caf437a3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.6.tgz","fileCount":222,"integrity":"sha512-7IuG8qoWjdSsJzpx+Y/d9qaWKKjTT76VX91EKgtsIzGVjRl8rwt1AQklqfp+1DmBE6wdwKM6PobMnANqIFm2GQ==","signatures":[{"sig":"MEYCIQDc71rIjwFBYQMSzv2bW/JCcVDdrgjIug6500Ksg/x9HgIhAJtVTo7NlWJP3a+eaBU5dNhIpNjONCi3mNprpvVECJ4i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK1O2CRA9TVsSAnZWagAAezIQAID2A7JeyYOX1Av96vXg\njvxpPotzKwRaIsG77pMh5FybiukdtKz+hYKO5a007AQYiVB1GFps6c9KXlPO\n6sktxbhqX7SY5jl2z76nXa3KAjqBPTLJDauHjPnoeUXtebVxIOg09i34zNfi\nsyVgou5OYkNzkrlznVkZ+NYFwzBKiZtTf5NDB3RYMiTf8bqLFE/aTpSWRquW\nexAgZe6072ddQKpfEfocNzLsMBNiDOc22tf7a37tXNP3eYtmGdNawmAsbvD8\nVDPVVLoK2KWDC9yGzG1NtZTBXien6C/YAnoqvsxZ2Isy1Y04YMP4gwq0BpBq\n7weIvxGpUTUJjE2bETUA2VDaaYUS/b1ChzjfdOW67loViGWYPIGUymglz7iV\nXM0bzYYonz4d9z6m0wXb/VEZBqefViLhLheX/vEy1X1SXBFYf4aFJOqxdHNu\nfkAApZLdZVSz8ozbeCADipLIiHfmwsG7KLfTagQsllkDhiYXXOhqvJ1zJm/X\nDavLCaUqtXn2efAhMWwy+SG04QS8BrTAfsvSfNZM2GALycG8oYYJ508Prkrm\nAqO+alHqE3u0J0X70chzGC/C1H49U16cvKtwrjxPimZXHNKqB1LRPV0Flulq\nVKPCcfLxcjqdpbhtpVEe+qX2u9ugoASWT/iJl3cicDPU04C9PuDVRsYg+HWC\nQI6i\r\n=Dt75\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"21a71a6521ddfd2c8584e0e43d56c5dcbff939bc","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.6_1596674997796_0.49043656014545745","host":"s3://npm-registry-packages"}},"0.2.7":{"name":"gatsby-recipes","version":"0.2.7","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.7","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0a9003eb354d904aed81d1417a876246a208eac2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.7.tgz","fileCount":221,"integrity":"sha512-GM2OuXRzbRijVRG2lFQ6bwUfyfR53+lOn2jxcbzjsNxq7aL5C3q7M1ocB2xaM1YGtZaH24WzQkX5y8GSrQK2cA==","signatures":[{"sig":"MEUCIQCzIkfnOjj2/TFyBriNCidbTvV0GynmF9pIXoyhdJgvTAIgfgeuBKAEgWheCR+e2kQPgmYSO08Ue2SD6p5d2j/E7vg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK72OCRA9TVsSAnZWagAAC1kP/0IRIi2MY5SnF/5vrEkM\nkeakmx5mGMjLudRGXUUAhiDLKkDbQekuIWMu0jFmry53O4kgiqdWtdyZnkgf\n8jgkair5BxHrYk+ith+sjotvmZe3dslaXvXpEoy+hNkIAIpeafwp3atGkhST\nS/CfBiLGfMb3rOXcjKPNRnHTnZ5+tKonBARymKsMkVMk+ha/7w1GjKHi6qur\nofRRf2iUJFNnjZhawyGQcS0cpwLXc0ATFphyeMhBEJMog3wHXj9WAgHko7Cw\nHQHXURizytmqyP2pm3QTwocQJaSjeO1VqFZlKDk5cF6SmR7S9PKzNFuVU6Y3\ncDLUJPaIeoExWDu8QRwXjDnZn8FT7q5nkBO9XxN2TJ4NNbbYklVl5Cez5F26\nOf8J+zW6BwIWN3ts9QG6BXaEVkZ+2oPuIf1L+R3Ece1ScnzXyfzNmcGl0vZ+\nJcTJW6YEbPLTOmTfGNik1Pexum+z4Wm7yMFUG1Op2Uacxq1tI05hbSPPGf8t\nzx4zFIofbGg3EkPExTkup3MS6Xh6T26DWTekI1RTSHWfDq/+HzXriaYCEcdO\nKhIqixXBXdMql4yLHMexHTXt+ExNyGKMfEFLHYcdhh2XtpZGXlpETwElHIpz\nePKHHJnS0YNGf1Ebj/wnqdHZH/j6GgkfCN02KKKmD6QCeG8CzfmnqEax263R\n+7Cw\r\n=HPF/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e942339f8906c4f13e48f43eeff2cf5f30c08d85","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.7_1596702094052_0.7199792210771012","host":"s3://npm-registry-packages"}},"0.1.58-telemetry-test.100":{"name":"gatsby-recipes","version":"0.1.58-telemetry-test.100","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.58-telemetry-test.100","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"42a25356fbe9d2e3e4b5a7dd85efa57af44a6e91","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.58-telemetry-test.100.tgz","fileCount":221,"integrity":"sha512-oyujaBXk9yi2xqR63Q19PhExlD9G1EAFkTQojv5zzkPtOCJP4293DmXcMIJ5YXIeD8942+7EWMo5mWGeviOC0Q==","signatures":[{"sig":"MEYCIQD3sz5olVXE8EKMZQmV0KQl2xKf9dqXPa21rQQA15CXiQIhANwg34Kjq4sSlnc99AK56pi2BS7gnorpf9CQwYVNfYw6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK/2KCRA9TVsSAnZWagAAnyMQAJOGExBHmGtvmxmYoHPc\nylw0kr7yZET+n1HYfWdk+pKfW3wfzYpnxtXx85ohDv0MdEwEO5lfdf0GHj+v\nlIuDxZecCcyyOzIIiIjNEKwoonkxqlBiZRD3CYojpJ6/hAooA8z/Iwu6bPFz\nHP5QeTeVvJr65FC3wV98f9Tr7SkuUBm05iJTtQWlH3WHcDiOtqUNkkxI4K0W\nT+MOM2fhAPTxOvRV3d+VKhFzA8w+2WQ4Ds5A0NbOm8WxbHGgRYYfLaBjIZkS\n1VedYf934vBbvBq3/hK7pKKRnYOUx54eEfFUh2ZG/9w7B4RK4Ed0gf/ybUpb\nwEOEaeLz5sO44wRi6Aq4OeNFvIKTh7CKznaKxi/LY8c6UQRXmFRQmWv8iitd\nakp8iZf/lzXrAm+4YN3isWAC5Z1hQ4rnd86BC3aeMIDctI3WC4CAh+nkf39w\nne5ZGR8192c6d0/THCXJtH+pTTZPz+VlqMrM+BciJeJzn/btAzKcIK3vcouJ\nY9VtK7GfNdLbenHjmolFXRV+w2YwcTI5bYoirk8uvbabCTOL2eCtAqbEBfz1\nKq++QazbGNOzFtAFKGxAHgjfeg2Xqfk6ylgLcsi1KylHRT86D/MkcPgf0Qpu\ngp1zxGF/XFaniRPwXJZgEeptqr5+cer0ovaeJs5cutYLco7HYGD+j7q6YCfb\nN44O\r\n=bH5B\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our custom React renderer, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, start the Recipes API in one terminal `node node_modules/gatsby-recipes/dist/graphql-server/server.js` and then in another terminal run your recipe with `RECIPES_DEV_MODE=true` set as an env variable.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7a5d6f0aaa1a09a2d845778c5f2c7202f161cd8c","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.24-telemetry-test.119+7a5d6f0aa","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.58-telemetry-test.100_1596718473490_0.3366568739030096","host":"s3://npm-registry-packages"}},"0.1.58-telemetry-test.106":{"name":"gatsby-recipes","version":"0.1.58-telemetry-test.106","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.58-telemetry-test.106","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"835a419ce77e239b0485b5818c50283f52335c11","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.58-telemetry-test.106.tgz","fileCount":221,"integrity":"sha512-gJ+nHCKPd+abS5xBiJkUitLKN0FC1VCivRX2LLdJvulkjqLP5GfLKJyHjxpfG/SnFvMCaeeEV/7tKD8XHop2YA==","signatures":[{"sig":"MEQCICPJd+e0eGHTKUbTKCGkk6LwbXyv7Of76PaTgtezn4L+AiBP9ZYwqhAQ0zaidJ9V+1Gx88WiLN/ej6TS1SrySoOX0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLBJJCRA9TVsSAnZWagAAWA0QAJFCmVaYDei2NhIyhTEu\nTP9mMQXnWVBPTxWx018CmB2VPCKZb2voBS4wG2lK2N6dNXHVg7VUlLlNF6DN\nseeGvDGs54uD2tsvN8Fma4iOF99fK3BRA37iphCyQJeNKSMACXZJXtIvojQi\nyFwFKvW4HIl7cYrguRoH8hP2YShWShc1s5KSFTfnK3DdwCCOAj/o0PFAhxXj\n2tkiIMlU1ok0yq8KZl7Ww456KvAXo1DZFKhm3EFBopb0JWR1sD7ZwneIaaN0\n37TJr2mcXC5I6R70n798NMdE56pwQ+baFughzSZwoSLd4JXlaNzLY9GEKW6S\n+dr6ME3ECroERUy8XMnIIMaHxHrYCn6+Vl6nemGFK384f8bDbSddQcYMKgko\nDfi1kkRtjKoTh3P3e/RqD5f9vMJ0S6e06Odg46Du1whlcFw7JcCrtlkEL0j8\ngub3+8ndKDlOnxlAn1HUlNW7ghS23FIQHig+m2z2ZsL6TCf24iq7pju5rN/4\nLNvYEz5bkb5QrrBzqdv6zlLi7m7mlWYclWT4V/m6HmrgEo2Bsvi+MD1QMBuv\ncQMXsCrQn4jm7sViYtKBGSapcC3iL2Gq+v/d4fERktA1HXCJBjwEfjnTqFKQ\nFBm1xx8HHAlS9b3v54PiftTgH7kJMcW8yW/ijJErI3RX3rZCFwRl847vJoI1\no4p4\r\n=1jZI\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our custom React renderer, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, start the Recipes API in one terminal `node node_modules/gatsby-recipes/dist/graphql-server/server.js` and then in another terminal run your recipe with `RECIPES_DEV_MODE=true` set as an env variable.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c150f546f72b5871b61746f517c1b8f6f5f83b98","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.24-telemetry-test.125+c150f546f","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.58-telemetry-test.106_1596723784847_0.9745354458461526","host":"s3://npm-registry-packages"}},"0.1.58-telemetry-test.103":{"name":"gatsby-recipes","version":"0.1.58-telemetry-test.103","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.58-telemetry-test.103","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"03825746f08e0b8878da1f097e1439f272142aa8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.58-telemetry-test.103.tgz","fileCount":221,"integrity":"sha512-Wx88uao7m94fux3dqLTJxL/KpvA6xrSajuWWAShp748WJlOpXVoTqkYgtsxx0I0LZNqXg4qmdT5NxkVdXoa75Q==","signatures":[{"sig":"MEUCIEhwSG4cRU7dWXemZxZ/8ahP/yDRyJPBqUimg+Fxj2QFAiEAjjjm+buRoUwF8j8HnTpqIA3m5wkpX5dMbUFPQf83Q8M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLCRoCRA9TVsSAnZWagAAjQQP/1Awfa649XURmdF1R3KF\nL5CeZ0czHesFzTaFEKLIQcX4rgM2RG+iC8gzeyhMcrPHGUnx5qSqajpZZpdM\n2CkFt8KEgJVHtivWhmnCEnCKsOvHXfeWQl0h4TiA3RPwiiWKkQ8+iO7cWzWn\nNzK+cQAuGvQ1vlcRQ9GvDD9gFDOifUGHoelHjzHwWdZsd4mBq5dcUsisMRXz\nJTkPO/5x9P6T9CNPh6ZoZe50rMGorPYxIa2rER1zdZTYN1FKN53WLZjrUbhW\nFHouRDLtxw41XgXrcFmGqN8vciFSceWukRx71xlkzgsgTWmhe95WkWcNbPx5\nnkyFAR3uwWV8LdNVZPPI2ayhoPe25/leD3JqZm9klUZNDP5HUiHjb8fCxtXv\nzfw1GrTdun4uByPCd5YTd4M/LWdoXsUFlhXJ0Q64zM+dD5nU+/qYDknLxXhE\nGK2tlRreOcKstY6V9+gYgxBhL0TFB38sOK0WMEuTHP4u3Eqj50PEo04RUO5r\nS3S1xxqzTyKAaesa/jtiqPfzISeJp2W/9kUwkb+QSqQTjRzpVZ0zH547cWS/\nkuUjlIDZGz5v3+lPgeu0VEhTzr4Fb7Oh/oHNn79fATsA7ersACiRT91JLC2e\nEcdDpQ+DKZ+79+FlngLVHt/dNXauWt4zXAmMQgZkfgVAVqDt2ln4P8ctUWT9\nAG7f\r\n=eF7z\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our custom React renderer, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, start the Recipes API in one terminal `node node_modules/gatsby-recipes/dist/graphql-server/server.js` and then in another terminal run your recipe with `RECIPES_DEV_MODE=true` set as an env variable.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1fdd677c5280d2e21617da753fd54759e5a0a9e2","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.24-telemetry-test.122+1fdd677c5","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.58-telemetry-test.103_1596728423687_0.7166098406591208","host":"s3://npm-registry-packages"}},"0.2.8":{"name":"gatsby-recipes","version":"0.2.8","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.8","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"217b15f55ae86fda704b1636fe069ee10989c74f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.8.tgz","fileCount":224,"integrity":"sha512-RSQVEGm/ioYm/3fjX+7TM6/mP1jso0ixQj68FCtbHJN67evsI5g6Uz8ENmXsTv/sugrBvjtuMZ9ucefGiRVWpA==","signatures":[{"sig":"MEQCIEVfrRuPIOjfsXtnmQ87DEsdhB4CWV/s/1gW7td1CzABAiB/bDHPTbmYqklCtlk0OJQI6yUz15KTk7aWrAar6t9iKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLJFJCRA9TVsSAnZWagAAcYIP+wZC5GNKUsN9rjH1e939\nNWk84oyfbS70nAkC6H8s75EkSf+8nvPaYe4+NNfV7gHiL11Py3PLk2OiFA7/\nJygaIqEhrNTxtn6+YQ0BM/N9WGrQBtXWEcrPNMI3zTi/Si8bT//DArneW3b7\ncSlIytkye5qoqXE88nbaUSNWxQj81d4Znpg10olH2A+o1PiKcz1Pdq46bZN4\nofUL5iE1MZ7vUXhu2gok8egYvpIjbofZXXAQAoaoSdp1aMO6PKPw8ntH0EcB\napltdWa2jAtsOJ5bZmWlv8CWaWy30FS2gGtkzK/1ct+xo8Ta6j5Knwe3ecaf\nnE0SVRhiCdPosaJfCNgLbH+yj/Xe07cswxh4UgxoYqAiETKe2jSmz40yhfia\ngkceZOuC1HuxLM6ixwJvrDEq3RPG4hqqSD6JXX+VApyVnGxtdhStzTo2GiVL\n+dTS5KcgbrYWYmh2ofr5mM7XyPfgxka15C7yeLp/4Ow06MC6xanc5EYtCB9J\nn7FyESAcGvo/hoNNitgNCNTFe7TaHHIISYz/GWdnf1TSU5litGt4Tnp4QtmH\nu/sPlmcG8TVOKDg5eQNPom0samFwNgeQgApOz2i/opqc1VVo/Q6BdpIWj3Ot\ntAEC18knB7YGDzYcoSN57VoGIAvl/KqcM9VhY1dNUPbJCZGYUOoYEyQ6Bb/g\nGuMj\r\n=wJSe\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"d7f8a64af251e132cfc721241c18f13a5e253fb9","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.8_1596756296939_0.5148097464866424","host":"s3://npm-registry-packages"}},"0.2.9":{"name":"gatsby-recipes","version":"0.2.9","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.9","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"635e2264b673b67d71b4f209c59f562f42bc86fc","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.9.tgz","fileCount":224,"integrity":"sha512-gLRjYRAsW4N4gjJjRynpkshiRtM4ExqU/ghDmFZzfH3sCzEYs/BKAradoy8WNuTziwCnV5fh3kKPq7P2TSx6sw==","signatures":[{"sig":"MEQCIF80o+N4wxVBXVUSmy4HCm2IRoNUbaohLwrzZJo3/K0MAiA3JlhguN84ax68RAf/We0hQzyCPlsapzz5dQB9WB0yXA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":965085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLYEKCRA9TVsSAnZWagAA4JsP/2mkfGOXOOkfLbB9Po9+\nGatgO7y5VlwzP9Z8dSOdmx2ADay3PBFEqq04pKl8Wg8MtK3TwNc+bjEjfIzE\nIIQKfa4bQulESWiLM7A70Uisn5iQns7NXyLuq8qYY9YfHIn866eoiDwDOS4u\nfyrLQHHRZmsE9QoQDPNUx1f05Q8DtbicTeb2wQkQSvcluuyfSPJB0d4SU56j\nuCBW+Q0PMdKi6gBwoOAthq5jYnKHwE35/xMKq0ZC++16Y5NA7DIvs3LC6Yy0\nwgOEL2MvFscjjFCaGWje5obTxnya67nsRoo3+P85doWAomVZD7YbbJmqOEvR\n8TiqyOUT3szs1eppcK9zulfyjTPjND+ThgB5ut9Tm/2q7znDShOk0M4LcZNX\nF/u6hsIwN65pFU5kDD3hWSp86W+SbHYjJGs/vZV9z9cX3HIaAMgvv+mHDonm\nc9k3CtnprFsnlFvNiay7zCYPHnX54/pP1VkTlvQ3xAR8LJguwxLLs5QCLeKi\nnBZgmlGDzstO86Z2Wur8hTqIW/7SjaoBfkPdF5qfC3MSZNZMzSPXe3qBlMJw\nXOCFB6mIbw8q4oHecf/GSgXAYtg20cpeQrr7A7qQ6Az1S2GHTeSrDympUFo+\n01xFl+1VR64aHmlcYbEBtzzwvhO24hieB592GlN9St1pv9oNZZWxaFecDGM5\ncS90\r\n=DfYw\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"82e5a75c47188b15df5e004caaaabe304684f630","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","p-queue":"^6.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.9_1596817673358_0.8990587131733081","host":"s3://npm-registry-packages"}},"0.2.10":{"name":"gatsby-recipes","version":"0.2.10","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.10","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ec9e56acd0cd39f544407a8d9dbeaf23e764e4e1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.10.tgz","fileCount":224,"integrity":"sha512-4iL9ZaZxIk1qTHCq+bFhT7edFJVuyWLInQKwQLsxxHIzM5DcizB21Lw62lzAOcACLiXzmJTofgVQOw+17c6Yhw==","signatures":[{"sig":"MEUCIDwlf0ay3Y2DvJdSHVQmHnjzJcEoZlw+Fryjow/wEs5ZAiEAy/Sk+X4852B2wQ6W4N9gvfcMTKV0UFhiXFKMSPeeFRw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":970554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLsKACRA9TVsSAnZWagAAs3MP/1ve9UXTM5YlRG5CONb8\naIDJtaGAXcTjvjZiSxpHGKfmQ4S3kk3kpe171TOI9BWGnd0GEfJErcAJKp0l\nA3oiP+DJyp6hp+w0Q1GmNqBpEFo3gWhM4dvQwSQtA+y65I3gPCnzxNaXx000\nUnIIsXlrz0V1WOeVwfv87LmIgHiuKz8aKq/l4n6mwLQ2EY6q8XURr71CJqoO\nWGwWrEbsgrwflJHXeSU+RxWkiaCKOOV197k0NHgcIArNk62XAIAIyYUOFZwb\nCh1bGy3eOwSKkxNGCkBS1PIP7MX5zAfxtFznfwQ+U9iuJYrSMoTBg6lkzqhV\naRQuOANGI1STQOEhfJr/ANxcTY8/trp6LE+5SHco5XFXvIxntr40OJriFAXP\noqHjOI0NRLxhoERq5ZrdCWbVM7uFac432dIKl8yZqhPWM1sgvvEhuclBDnD2\n10qJjfbP86+TO1FDZkDfxV3lDByhdumqfEpW5sFsoNDEuUS/UeVceTh/aKir\nS7MDoJurunbAjQ/AGn2oaUlIpZucJuGwgeS66XNAhm8vd6LYK5eCSLC+4oVh\n6ek2GGLfTYxovVbnGP5+1087aw0muYDTleb0S5Vge+81JJnnG38HAkA16yMm\nP3ekbMMMj67SSwkLwY73g0fAqZgLNrNLadVodn6SwAwPkGrS6WZG5//WFvDH\n1bO4\r\n=dAOH\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a1f8a5054d52b1ccc704a91c292e8360043847f4","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.10_1596899968243_0.11584497649063707","host":"s3://npm-registry-packages"}},"0.2.11":{"name":"gatsby-recipes","version":"0.2.11","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.11","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0b3bc28a6f99fbe660edf8d3297f3a65571f0dea","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.11.tgz","fileCount":224,"integrity":"sha512-051xjYmm8+o4pMrKJSoaxDwjx23KapTVXHQuhPHET6OMyVNmFN4DQSIkL8gzZmxPetzkpJUED0jXx6/OxQNJ8A==","signatures":[{"sig":"MEUCIQC7kuq6Ub15p2nLtsWQSTFq0sTcQWwVQ2XM1AWmkbw+nwIgeLqKSY3dMg/RXvM6nRneBkRe5ip6WketYFaL4Bk9j5U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":971521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMaiVCRA9TVsSAnZWagAAaKwP/3laqwUxKicomr/KpNKc\nt3GUIAoy3HoIT/qsxcSP4tU9BWMIs1SLwyvlQFtIIJSZ3WxN7a9x2KQHjPrf\nVGpOwTb4n5bXBYFIKDz9Dy6+DJU+hI25l1Ba7onmYqnu7LuP9o9IZfomdbVh\nnazYQR9BEYxlzXRqVhGDzK7HGJ69RTM8QxcqRdjEht/w2TWg5cnqM2Wnygiv\noDfgST0cDHw0dBJVi4Dn7IAE/A5Z5ZhemBC8R3JYs07vCus8IrJUgtJw1Lkw\ngxKvvkq8DSm18kw+7Jt6Lwfq3d615k2wJgyOGaaDx06z3cViXiBE+ggvbowB\ngEK1K12wspxhOo/88RIcDT+ni48H36XmE/NZylxnyUeq2GGwN16oWmobbSJi\nFEiitJN/laIr7hCY/LwCpqrwKxBpICSQIvdRLMwo5eYB/hlOiNlgA+RH68Y0\ndJCA7ZEud6NXLRpaNNZ9qnViI2Fu8ol36aoFEuhEeRcToTuCIQezffEePXyW\nn5qX9t5tnRluoJhSIfRTWCpcgFgWE4Tbe4OY0T6HPu2kxXb1cX07wnobWJwd\nEHLupPxIc868Yp8I8/cqSHWeIetx+5IEqL+xSrpR/cM1CPIt//qCDh0WOK9n\n7trLe6IwQ0k5MRChA/Mj7puExpufqN09Lu5yj3f7fv1114hTiWARusDU2i91\nsfhL\r\n=SvQ3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"d4dfec8a693e8434a7b0468a86458020d59274e9","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.11_1597089941037_0.7551232508181223","host":"s3://npm-registry-packages"}},"0.2.12":{"name":"gatsby-recipes","version":"0.2.12","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.12","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"74c65c1169b27c2c46f561c933a6a81021866fc0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.12.tgz","fileCount":224,"integrity":"sha512-lvZzxqk2gqmFJipb5liCeVGbRRT1H4OOaLsJ9dT1TgbSrf1YnpvvfEEaJuOnm/prHs1oOlEdf14ZooA5OxhJeA==","signatures":[{"sig":"MEUCIDuaKER5HztjWF/MQifeTVfcy+WSjCPjBeQpQD4uusnHAiEAzbNrMpOfJyTYu29TWHH793tTBalJaEpYqcio2zYaZHI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":971839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMcRjCRA9TVsSAnZWagAAjFsP/R+RBt/MsKkqd5OBv/3I\n+tkkN74XTIkqVrjkIZXYgnp6YL6FfrlAm7aUEqNZx52EO0HZLLqa0Qrb4LWK\nGgZtCdEO31gHC5KzFvKMW4g5EsmG8Dnm+5BDhP4FVhuefY8LEaG+68Ygtq+9\nf36w/347rZEz1bTFjSk/dS0wT0AqgLEf2IrPWRdi0jVOCYb3wBQ3XZOvaLb2\n2slSa9tixvJ/Q26G/VKYtoZgtYrGvIUZQCe9KN/AZstGWyJei9cihBgE+WT3\nTeBb9hJTqUXKQMWuQVyi/w523kaocOmZtWPhNyBz22npE5Tx7oow2C4lYZSd\n3orqibdwKuWRv/FJmBj7RC7PZCTTgJCdc4/IlhIXKe4vVXrVcMS3j2sVr33R\nfoko2SphXd00oEkUYclFukUXghdESDQ8cnePR2sYH4ZuZ42Z5xWIOvE1FHrX\nCIILZMsMdb8ydKJm7oiytWpsE7F1227zSC1mHKh5BsKgHUlqj911n6uaa+h3\nKA+EKjoCSN5vc9KoAEiWBFLUcRYYwVbsWIFncNYQ/SB7M3jdfwk2rflO5H0P\nVDxYLWCRnOJNYqv7fNrPl1u6YkA1PUhJqb1NmfH45bU4leZI/Iy58Ft02utu\nps1DMXKu1sA5OIxFArm5LODvRk87Z+bkLVr3A61qd40qJGwgJT/YaxI/xAJP\nYTU0\r\n=m1RC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a3f9d2d02bf1bd013eeafb776088da94245c0bf4","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.26","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.12_1597097059184_0.22682358534184188","host":"s3://npm-registry-packages"}},"0.2.13":{"name":"gatsby-recipes","version":"0.2.13","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.13","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"bfdf628a8376c2a4a79334024179c6689da73413","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.13.tgz","fileCount":226,"integrity":"sha512-M2MmlgwXDZET1Ye5smLDEF/E1GQdYgXJZu2pTZLk8NRfvltoQVEKRbMvhR+zYtSwPiCGyhwIXD1g8BXtukWr/Q==","signatures":[{"sig":"MEYCIQCQgKfoZMnrty/2PLgew9NOim4aor8hD20EnCXhcs2cNQIhANc384bk1ibQeg+lXgiznqU3ezpTIrrErod4VQlO/U/x","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":976589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMse9CRA9TVsSAnZWagAABIYP/id7dvCw+eKFBba3kkgH\nPDb3a36xdLajPjo75vfTyA4TMRO42TOlEQXq7+BiFsIolt6bhp1NNtnIDL3J\nkCV5wDZVezL9+Dhyp2F2EvhgDXEihOr/IVJZcJjGTQq3xzrSClddQj6a8Wf1\nCp3ciXc+XTlFI3kaRIn6KGy3w5ThZLklHAvDpXofqvdaZheyRPDLa+ol5HNV\nMmmFj3l+ZDJiSpJJCpwMs7NmOKR6Bl3iLm1gknLUKy7zazqm5rTlkZM409DR\nyGE9Xsoe7u5WTUypXfZNNVDXIILJ6DszLxvfj8JcWSxdX7sj/1MswFetaMpK\n1Yx60lB1JK7Q+jykCOCGTwbwfaIHHgF8gvW0hUEmocXnHAEkxoETroZFSd7r\nM10wOMCvnM//6cEP2mlzoMQrJuAHhlkmmVQbqsXJOeJ3WLIHGJDA2795AukM\n+Rd6VX+IXD/BTM0U9vqHIuumIZ6gJG4oFc28cCU0BGE3539ShpAe4FyTtGqJ\nFRZ9zu2zxeiGrV1i/hWEqJYvAksz9QdZuwtl29Nmo4dbfbys9j9EIO4DLidY\n5lnMszFRZAbtiBdJhX526xu6JUtTExhk82nXZDrvHdZdyqadqxWo9lS7PDkv\n3z2Q119akeydkxddFasBN8Xk8pJWsSry4qfR4f4ZEGIbF+dZEqNDQQQZhoeC\nj5UH\r\n=vOYE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fb1753cedae5cf4a344b09dcbaac98bcdf6181ba","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.27","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.13_1597163453075_0.09545923723810223","host":"s3://npm-registry-packages"}},"0.2.14":{"name":"gatsby-recipes","version":"0.2.14","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.14","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"45442574b08b5fc1d6faf74c694350be5674c36a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.14.tgz","fileCount":225,"integrity":"sha512-UoZ1X9kSczvFlB5e0lWkgX4lr7ptbYNB/HUg08u6Rm5VgYbj/ToNDpaAOZ7c1gY8BUIDhfX4s1mqi6DiaDxLWg==","signatures":[{"sig":"MEYCIQDG+Qa35jMW2RZO8ZCOMmCKw27rK/cpKNqvVZopWrlN/QIhANxmbWrsJffHEQpaZdW/WeZBIW/IUwWWa5/sNEI9A9Gq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":976877,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM8DyCRA9TVsSAnZWagAA8goP/2ZEQV32K1oN3nyMSvg2\nO5CEv/vAAnZdgjTc9E1XO74HsS1n+OhQcyNBMgyUaKZrdFMSqLS+lCayH+/3\nCI1ZkH6drnjqO0RMqm2FHMBNNDUyTH17UaCQPFHgp4hzkPzgad9R7PImsf8C\nIcNoOrzjP60+zMWpt/BUL1mNupJo2vcIAKfqkuQg5GvnsVJMvkox90HxvLYV\nv15Q00Q2AzzRw8/Jw9hXo+EEQ5qKlZuBkCD5KfeHmFJY0iiRrXIGTKdfkNwU\na1x9m5os/hqz6QBArM+p+jcCJK7K3nYxnGzCeZciUB4iPtLjHkSgJls6Kvd2\nZekp4olfp87EZR9q5GQ2ATCWEpWK5tIpXYHQ2nt5pjMet5QMDKsITDfPLe/u\nE07GanOdluyPNHKUnKgrVt1thurCckPKHFpMu7GXNeHMkuBWzD0VlDEPn8nd\nH05C4MDJ8veCG2t3GPg6zRA1rWQ5r8If7TlnxwOdV6te71HcicIYKAtKu8ss\nMG88T2qWwS8JppOOmHwDD4pN9G76WLOkHk7qdimEP/o/740dzb2ROs5QGWhv\nz7LO85QuX61UlWJtOQ85RPzeznpairK/kFWn+PDCREjjiKfDrdq1y3+nsfgb\nBoz4Gbu2AeRMoFGmceRhCphxQ7vZ6CLJ4M+2J64NpCP6vv8tIb3P+9wUrB6X\ngOSF\r\n=SXHu\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"76be951eef5e95a03dc8faafe57a5888943e3f62","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.27","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.14_1597227250144_0.22912041464330613","host":"s3://npm-registry-packages"}},"0.2.15":{"name":"gatsby-recipes","version":"0.2.15","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.15","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"dbe7958a7e248a690adbade711d104e06af425e5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.15.tgz","fileCount":228,"integrity":"sha512-roNX+CzJwnOTecqVpp8tXAXC9XgEVEGlhySNGcfhJ7AdiHRp1hzN6JiTHHB35T0zmFNVqG5kTicfHRPZuJrCrg==","signatures":[{"sig":"MEQCIGoq+toLMU1SR3C7uL/q2gcNMxokzganShNgXpEv0bqPAiBvibGsLDg8P2CAtHnNHFYc8jDj2ZKdC/He4xuAHwrcsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":984898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNBW1CRA9TVsSAnZWagAAgi8P/1hAec8yVBsf3jD5OlmD\nDp0kavkEFLQgh28eqw0AkUSWPUpElr3CtCZZAdB2WUvanh3oisjVtfSbnSqu\ndQI+7IPeWMByjJ8FkfJC7s+1kxWzqz+AOBDcrPis3NQkLFs5i+6UsT1KiwCR\nbVVZ8tlOodEzUr64pa3XNLusauqXvYBz23bqyjy7yQdUK+ILWsa/w5iawfJl\nhXHg/099RIvOLo7e3lPcsX2qIiNDAyoRQIPK7yMnIIvYocWYTmnr42KfPvgJ\nzjxXdXWHjddHM2A/Aivy0lr/orYxIcdVRU2/0XasY2GdPZwRBrJ+u8sqwTMy\nOumU6PaO6LbP5fgSnm62O5q55c+/yK7o52eAXxot2Inu2UZcOuvORebGDUCA\nki3AsOLWGUSB8oWTBOB+RA10kKGoh9g0yZ+L65EAoU+61/c1V9HtkEIJiSlC\nwhTpgVaPBoQjDeRRtb9j3QnLZrnKPRnVnfoosvFo+/t5zQEDQcD1lapA5o0b\nv5ryLihKX5XX8VIeHFTHQ+A+vScHC9i3WlINi4gl3ep/yQFBVEV/lU/iLapw\n/FPsBhz0qbXezolTshmhdNEDAqz/zly1tQx08v56DNQq7FMAzb8AK5oZpYEW\nzvff3Gy2//czDAnf+a9tvCyKEjmuWjl1mnD1o2FVbYBkFQwtvodCY39Xwn26\nokx8\r\n=RXj8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"d05440cb7395e927c3027dc4d095531c17ff52d9","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.27","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.15_1597248948986_0.38141479666640454","host":"s3://npm-registry-packages"}},"0.2.16":{"name":"gatsby-recipes","version":"0.2.16","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.16","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ad59cc82275b19fe5d9697037cfaf1a8cb19ce88","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.16.tgz","fileCount":228,"integrity":"sha512-Aq3zeg0kmzKlqiQWoONMz3cf/QdP/AjUEGNdUhEKyvwgd0d7K9may99ltrzcssLfhkLtv/+aPJllhQG//RQxqQ==","signatures":[{"sig":"MEUCIECrJRMHBBulfsoqeD0cb49Qu+AqXctU94wDyL/RkEKmAiEApMDGtj209KvP7GcCfZOro9OorhbJicvVm5VahtDku+Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":985334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNCm+CRA9TVsSAnZWagAAv8oP/Arftb7bNaSB/rBkL0DA\nWwMayRuf1577BAaox8B4nXsLPfp+9BZ9dYT6mLgMHSv7BFLsMSdjBm+oRG5l\nWZTwOHEDtiyytvrXZBzLaTA+mgY+TOHFVEO1eHF4behWyHTxkqPHa5lp4UHA\nks7K6yFtQEN5HuoZ5gnoITuEsh+uPgqsDyYKDUv6guYxdQfntle/REawzn8k\nQtcCUQqF6wUPr7yr7X1USzsbanwAgVmBSbFeJPG0mM9edYzgzp5yHdbG2QRU\nxDgct7zQt77gBmTnHabIPMSXgfTPDIDkuZdwdW6Ic6SrDbxBawg3dFXiYu3a\nytr+TrncLYejUmxAlrVVzWHd3v4meaPWRzg5S8bl04KHM5PgASneNuSqArS9\nTLd47PzgsDPQU9x6GRmOvJE3B+G9iqzWJEbvLIV6F4vNr+xqEF67b6MOkHGT\nTKbAjz7j2Tf0jm0ASbIr7NrimxfIM3qcHiZJ5eDVb0y6Ny3W9ZZmSJ4DXT2h\ngMdkR2wu8OueyJC11jXGeOxwVrU/i9uNoiAt7S88dwYCv9OjmyYbbBX27PZQ\nhw6f27uWlj6SDDl+If6esXP3/WvreyICX9DZWHCvzSxY8g6glDhYDKozY2dD\nXJcUgbe0xceKTHOV3xJn5xtqc4lrlYtiTkde9tjt/iB4Hc7fQ16SQ2pfOjf4\nuZgo\r\n=vBHO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"3c194389ada8373ad014e9ba922098f9b6040866","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.27","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.16_1597254077989_0.8877398548608795","host":"s3://npm-registry-packages"}},"0.2.17-incbuild-collections.5":{"name":"gatsby-recipes","version":"0.2.17-incbuild-collections.5","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.17-incbuild-collections.5","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b1923983ca335134fd7d9b94adf466451d40d232","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.17-incbuild-collections.5.tgz","fileCount":229,"integrity":"sha512-MOAY9/oT679q77LSQi4UypCtms6cFa2BDbcBEC43Y8PzQaJRrwicGri3f2jdSAIGq+Ba8XDRW4vlMI11QqS8TA==","signatures":[{"sig":"MEUCIQD6tgPMTWOFkfMkK17tMaLFfqDXJDaqLnxF9NqphpomOQIgZD+p2s0HC2ymCxbqdQzQSxcbf/tX8KssbxT4bKx4qvI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":986714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPzdoCRA9TVsSAnZWagAAMTwP/jBNYW3hBb0FQts2ZCbv\npQRDPdVjgwCUmJAlRKvPVfpkuHCa4edQB3Yg2Wtnfg2LEOgZWGYBKU1VXsL8\nMT9Uei6dU6UwnFQH18dv4GO3bbSRCz/zrqZppR0izm5loZoD0JQF+WqG2xTO\nxqChCTxXP0Pm5R+udFPfgV2VZU/8M1loZTr/pNz7UU4ZVPHN9kW86DMamIF7\nu2LB4mfCCs7sQGUZGV1Ie7cmOTY6FQxDaMJwhyxtsf1+0C8XWTmPcGxOmfUG\naQ/tOMSN2mPEzBNr+Q621RIcrYG5ZgOoMOkC2kG3Qvk9P5uMYewvWOqqCLj5\n2i75HN4fDJAur65Rfo4yHfKxJO1PHye+Tc0MMtIG448h0Fy73a5ikux/p4io\nZZo5LFc5JSeyhtvGHcnoTnBAgAD25oHBkOkFdnsKglVnaJcEXM8BRRfRkc0J\nQTpp6hMPKGXP1k32HCYtO6GmVxwyE68Q+EvQbQxu2lRMQAjA+J1eptu8l/yq\ngqFMzPnkz5U31qv56MmBm9epZQCLVU4/gD92go0tW+8jti43jF8sOmUtj+Ac\n7ySeP7nEc99rbyQ4EkUhuXYWFI0IKZLwRm8eDpy4lCdGH4JU60W/QFAqjhow\nieVe9jbSR1E+Fd237j5al5s6R4JkHL22xoUJs1rOWeSbkModZsZHfYAWCvtD\nFij6\r\n=bE4J\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nGatsby Recipes is framework for automating common Gatsby tasks. Recipes are MDX\nfiles which, when run by our custom React renderer, perform common actions like installing\nNPM packages, installing plugins, creating pages, etc.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\n\nFollow the issue for updates!\n\nhttps://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Work on Resources & the core framework\n\nFirst [follow the instructions on setting up a local Gatsby dev environment](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/).\n\nIf you want to fix a bug in a resource or extend it in some way, typically you'll be working against the tests for that resource.\n\nIn your terminal, start a jest watch process against the resource you're working on e.g. for GatsbyPlugin:\n\n```shell\nGATSBY_RECIPES_NO_COLOR=true jest --testPathPattern \"src/.*plugin.test\" --watch\n```\n\nYou can create test recipes that you run in a test site. You'll need to [use `gatsby-dev-cli` for this.](https://www.gatsbyjs.org/contributing/setting-up-your-local-dev-environment/#gatsby-functional-changes).\n\nOne note, as you'll be testing changes to the Gatsby CLI — instead of running the global gatsby-cli package (i.e. what you'd\nrun by typing `gatsby`, you'll want to run the version copied over by `gatsby-dev-cli` by running `./node_modules/.bin/gatsby`.\n\nWhen debugging the CLI, you may run into errors without stacktraces. In order\nto work around that, you can use the node inspector:\n\n```sh\nDEBUG=true node --inspect-brk ./node_modules/.bin/gatsby recipes ./test.mdx\n```\n\nThen, open up Chrome and click the node icon in dev tools.\n\nTo see log output from the Recipes graphql server, start the Recipes API in one terminal `node node_modules/gatsby-recipes/dist/graphql-server/server.js` and then in another terminal run your recipe with `RECIPES_DEV_MODE=true` set as an env variable.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"598335ebebddd8afbfde64c8ed317066c2c146b1","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"blainekasten","email":"blainekasten@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.18.1","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"1.3.28-incbuild-collections.83+598335ebeb","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"1.3.16-incbuild-collections.159+598335ebeb","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.17-incbuild-collections.5_1597978471992_0.22692484041947836","host":"s3://npm-registry-packages"}},"0.2.17":{"name":"gatsby-recipes","version":"0.2.17","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.17","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3345ed5140d1defadcf6eda03585b94ec9cffe74","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.17.tgz","fileCount":229,"integrity":"sha512-BwscTYe1d1wxVUrBt9DZSrDTAhZjjvCj5ncEdfxHXz5BgiJcz6KUb4AVBboI/frOtSGbcSNWBGRJbEWcBQMCvA==","signatures":[{"sig":"MEQCIEsKV0zCXfXZ8jAIFYF8rE8ovjgXyu9kU19rn0LyHoVfAiAZ8mHHSirEmEPFCBdMwxS8ZzJ46kBwpvkf3Pu3Io8K8w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":987446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQ4BfCRA9TVsSAnZWagAA4mQP/AnrANyi1tZ5NvtJ9rXC\nZoOYua2WzPGqR0oqhiaBlRPeZNaQ14sp8+cyM0ZPmapQ9eCHjxuQXfDrBniO\n54Rcyxgwk9fNpmsUwZ25Cn1KZGAzmWolerl5eZ5n8VqCJ5pEjn7Ab82MJaBD\nVyxxrbN0LQwl9NsHthIiDqcsvEr4pICwcFxsIRbMIJgQkEv7PW5/R2HTv9tk\n4BepX3DOs+usFdfcMq+F37vul/AUBbIACBBxrFnApqoqAHSdDCvwjXw+2bj8\n44E6mKZWTGb0pA784RyE383gN3KjZuBKvKuvG2uaQ6518ELHcv8iC7KZyoka\n+ieJoWSwQfmQ+aKKjIU9p3DVLm/6aTlFQTf5Y8B43nmzFV6bTVwWXSKl7i72\nT9MZA7KfG3KVJZEOxojNuKy2h0g5mWJ0ZfX7g50e7Ve/FRiSQY3Pj0+8/F5d\n0g1jtIkWO1W6vZc0xPKE+efCMyjNuub1v8irJFU9PwVFkIwlCKfJrCqjR6Fd\njOHLvrNxxTDk7VitsRGb7cLWlbA/VBAcZl+4VFAC5y+20Oy5Xr7KmSVrN2UU\n5s+wjNRGZUFJcXe3rVT+viRBYQN5IjuyU7MO2SOeS4CqUGNrypY3LL+CP4Le\nuMyafwwoXPtOT3ixlqzQd1weJE8OBkodttmaSyML4xC6HLG2jmKfrauKOL9y\nllgQ\r\n=aPyW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"56990bdd49c01e4f4a0c659df542e35abea2954e","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.28","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.16","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.17_1598259294579_0.8604014689127251","host":"s3://npm-registry-packages"}},"0.2.18":{"name":"gatsby-recipes","version":"0.2.18","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.18","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e6a8aa37fea6bfe0c41ce38bc9bd71df8c27853f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.18.tgz","fileCount":229,"integrity":"sha512-0OYUuTHYgTniszBGvePjQrqa2Z+29aJKvcjmipmF/8pbDFtFawhkiGTU1rDsqmRsJDpsZs28z/aSwP0sj6l6tQ==","signatures":[{"sig":"MEUCIAPx7crJ0MfFgKW44qH8M84JnTik33F9EZTqfeUGeV5gAiEA5YLXUgMGF4wzFlGbbYLmgobHHk9qMu2lbWPlISRBZVM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1118577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRm3GCRA9TVsSAnZWagAAx+MP/3SSwwOeRYmTVcNhda7W\nop+U0zoiylEbDuMtqjAivEEv4y6E0fy8MHfHEygQSpguMoca6FLo1o2eUQBJ\n0UnW4yXzAy+eRTzTiuIoLi8ytzExUYXZi4yRN+VohyA4mRM6EO5mEuGXgh9/\ninuIEEULfBc5BFEZjdHyddcayTfKYjT6r33luTY8QPAiY4B08JV7n8TC0IYG\nyGNRHc7mF9CK5HhzZ0JaUEoJttkhvttrvweHDbxFOsDZ/myVjOUdJg8URz42\nr/v6Vi+ueUHXK2UI1upQZ3bzjqLDuOtOD0g4UST5rrrT3wEsgPS3cD2yya/3\nbg0leIqWBKK2HayzDBU+iXk93E8ZqKxjNz0qC2TkIp0wHJI5IJzbAesq6LPI\ntyJ5dqmssNgz6YiIm4mIT+CPLq34PB/mgzE54VLtKDjLxkB57K3x/Rk8Jrrm\nrQ5T16o66R4GwklL1rl36mPydkiBG8Osrm6gS5jNtReSSGif+SZHXlrM2Gfv\nc2nnJxhnnfrgCbpuBL0Kar/hDR46XMztYC/7xCSAhckzDoy2EeJ5hMA1tu1+\nWtQ+AF3Kt64tsVLfWlxnSDYF5uBmE/JNJL3dAGjy3oMT0aCHp0Zn+miN7lwb\ncH4LrqWDsu7hnD6lvcCTG/YGZYEBqvkn7WR40TSRbJPkdawdb4oqoAzwfZXP\n9Ub8\r\n=qush\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"093614ffaf94e827f278af4a3d2bce93905bf719","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.2.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"3.4.0","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.29","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.17","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.18_1598451135052_0.5889175412414522","host":"s3://npm-registry-packages"}},"0.2.19":{"name":"gatsby-recipes","version":"0.2.19","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.19","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0d4e43b1b74b73046089797f9ec677483b5de645","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.19.tgz","fileCount":230,"integrity":"sha512-VkickYkzFzS2qXLuhvw7mxcNxc9Yh1kpEBKIJPJcknpCURakGiScckwSTLQzHU41vXZiG3Tgsx7AVTd0HCzDNA==","signatures":[{"sig":"MEUCID6+m/TOMld6k5z9ulfAWyRHeJlxCKrP4jH0/bQPjFHqAiEA6nQAD1aM2OxWiM6QtBvFWVEpgJBfnviZUs+h5ADMV18=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1061041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSQ/CCRA9TVsSAnZWagAA2pIP/RfuQBNJ1EEFPEMOYycr\nX2rP5Vtjb8X75If1dQw2bj772zABry3CqS2pHsvzTRSFkSrAvHHT130eFF3f\nAUr7vnWcT7B7g8pYYVcpVj8stbT5e/p+TSrqZWuCjKQNwhpUoexjbTMOcudM\n8ZQ/XpbWUlqNkkS85qt+XSecty5tCRKN/O6srKTCDS4IevybZQ3NkfA0GRHN\nfubV/1xYHe8+kcozcydTKlM59AGkZyiGjc+Rx2lSKeCV0Hpt/8/IpUmdMWIE\nd2gQaCw2WwlkDB5exewkjv+ZALTjHR6MwjJCg8K2ETyPRQ+JvE2yF1a02H5h\nAv6YVVtJ39E6EP7j/tNGwGP6bpquF7qXjtmaskZ3m0l5u31DSihOMEPpLuAA\nkFZLJjuRkH+uaywAfmWbyjfQw9vTNwaMz4TC5p71CqA+I+HxWwNHlRO0TnCY\nlEWCsd9yFo2EUztX+cLupENdbG99Wzus79k4EIS+vf8bpn/+hcAnNJkUYxlc\nXFkwjmzahWyKzuG6YFpROnz1w2P7xtUpuPsZ257xc6gV9bvY6pr5L2lTME1d\n0g51XAH6U+Wwgaw/AF0DCAibdCr8gNzuN6ETe79figj0EJI33y0xx58d4rCl\nUEgPTv3OpuNeQDNPMpLv8O+tXyuygQ7OeC4isEsoGsmVyCYVH9EB+0r1SmNI\n/86H\r\n=SrG+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ac72bfb7d1ff2c06ef6652f12c1e861fd7cc21f3","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.3.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.30","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.18","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.19_1598623681534_0.9242908545364343","host":"s3://npm-registry-packages"}},"0.2.20":{"name":"gatsby-recipes","version":"0.2.20","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.20","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"66bd9fb0064a973b2122443367ae64419e0d3ac9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.20.tgz","fileCount":230,"integrity":"sha512-0CjII9YZU0JpLWovFAJwctBcOI/tcTi5N6AS7HYUwzwYs/Ivb3en99NqOnT61m7i50wgWJmfo+Fo4Df3+vloug==","signatures":[{"sig":"MEUCICxU/x8oXUQZeiwaOVRxlS1ySQCOxkU0NVclWcKHBVIKAiEA/THfZuEloRdjAhIBFM1zX88OR4s7gmucn6CFXpD8qvY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1083367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTOZJCRA9TVsSAnZWagAAn70P/iAePeRoImT4EbJus0CR\nTseJ+W7ikDG0BM9XpBxJTxn7hiN9eMGOTCvePHOCEVJ+V2NLFRNR4xuKxR0L\nNBFPVJiNqppnJ74S1RDajwX3TVMS802z2rQzaeAJdlxCIsZiRtp8mK7+n38z\ny2u0HkLfpnaRype3cJO6K+0DeoVMDcNdc9ZMsU74OGwS5xB3nxOOPvwap1ht\nAevDY/cMr92LGjwQJWTo4ckgrHPjNAlZNxKoOsVPGQ1SlQ8dCpGyzLwhQe66\nRLcKiHw7hqadcUkD68jfFdrn6dp66hsevfgdUUQcGfrXD+1AfvgQoix8Xfj/\nxmTCqAHcyRTwfZFt2kOisxhonCNgzOAWPOYivyBqRHmRVppgREh/WWVaE6Mb\n6+Tb3qeW4eueXnOZcxYaZjqLgEQtq7/AocNZKSH2KxoJ0nfpUFRc7pBGeQCG\n2U/qwp5Mw/p4j/mTox4vFq55aLKHqqV7sdi1RNhRzlrONDNfBe7FkkO10Rjn\nwtFLALEHOSBOYBvWW+asUfo6V++M5JJnSVu4SjUBxvEoebuTdWyKjyxwex89\nD38bPnep/6ub9eN5FBCWuB++LhqCiMN78lXKnbePh3L4hVHHibUsO8WhMymO\nUUugcRGsxCKtAcwUOSzOnGdAfUfbbsAuT1+nb4Jb/bbLE/hQnobsuNhFlVO+\nVb0v\r\n=1Y8L\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"83cd408c557ac3318902b17e16bca23a7d711006","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.3.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.15","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.30","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.18","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.20_1598875208483_0.0664499505482068","host":"s3://npm-registry-packages"}},"0.2.21":{"name":"gatsby-recipes","version":"0.2.21","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.21","maintainers":[{"name":"ascorbic","email":"m@mk.gg"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a0b19689788e149aa5b9fad8c5fad6d014cb2d4b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.21.tgz","fileCount":230,"integrity":"sha512-Dpm0pV6LJXe0W0U49jq3MuAx5EAL7XKB+yvJMLgf74IfOPiTItt1jSm3XwIwzmQJckPgodkxyKajbnlg8Z9F3g==","signatures":[{"sig":"MEUCIQDRfowxMoj4zlQlE4B9DNdwMB0VCzAN9a4wnPpdEIUedAIgC3jQ3v+FPvKr0c6sueiZOI4bYhpk1B2/MXi88/ovm/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1088673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVgPzCRA9TVsSAnZWagAAR/8P+QGg75MvGGZCxQskjV+8\nWC++zrl00eRwE9eYKM34vM07frTLPk0dUH0AZ9daZAN1QkYSekJQgu/0kiLR\nuqqKKSnq51zAqDtcxaUD5jgK7owYdAbheOGDvI/DiG8oWEWKYZhooQKmINm2\ndwIq5oadQAKo8qyMOXpjaDs9ujOSUrr2EHTWDjjfTfVCvhh1FvTHHawEWuuO\nIGDnFo2upoQ/2txsnwBhAFfrXKNghRD5aKAMZvt7slq3v8iLuhiqId+5GD48\ntpTIzDqPRoYjxBmn/ZAcmVABax3UUSGagdcPRSlRgWy1FsQxpPVriPGXmdWs\nTwUR2a2kYzeXOh51n25ApltRSj6TpIqD1JXCRT2zqF7yf0JaLe1isZbVbwq+\nbJhVxCMpsFsltw7mI7JBGOMhG1msvtWjzls+5FabYX4AWuMHs0B7bfMPoDGU\nkHVjhfReCT5sJMRREOqgzjEHv9gDClZhguS7g7888xgE+eLLtAr0nzLDODuT\nbnri/6cBbtFK/clGiNB7GZ2sXg8Z3BJOlFL4eqQjnYai294viDxAuUeWxube\noFjHJlojqtF1n8NnPHn35I68/uM/MgXEp8KTs0YamHinTIN4LvStRvmTwvQ3\nJlkEmy5QQwZEurrMTef4gmN92J35E2BEzEVTlKSfitbdoZVC/OquMtcoyTaQ\nW3zP\r\n=d6cw\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"7f3221b55270a187c08b3f0674ca94cd202a3a38","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"^8.3.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.31","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.19","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.21_1599472627051_0.7619044869913387","host":"s3://npm-registry-packages"}},"0.2.22":{"name":"gatsby-recipes","version":"0.2.22","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.22","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9b69e14f7c15959faaf9eee766373ae58892de47","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.22.tgz","fileCount":230,"integrity":"sha512-I8YHg52FiMGrRuJIb7eOvHRUcEB3hnOVLoDbzF8bQomSekd/+XApDBbNvNYaL8Y8Zp2Hef/wyoP2IgUOrszAiQ==","signatures":[{"sig":"MEYCIQCv2diw+RJydh8tYfdr8f3sjmqetHO+rv8C6fmtEa//9gIhANNxkqB1EKFgN+LG+wHu7CImU4/8HqRyxlXREHEqep/e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":944723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfV7EnCRA9TVsSAnZWagAAKJ8P/1cjUvqMoCmeKVz08z0B\n992VTZKJTGbAN+kSIBVLqeN8Fgs889XkuAp/ESKSXmABKzXs1i0G1S/diqDK\nII91d30qTPvE3klniUrpFKnQh9mnR+hd/PDfb7AEnmLDisBhvAJ0WFgNX4aK\nc11uVjL87j5kFtdq3+mkJ1ZipPkmZjoGxH0Mlj+b1C0OPVQLRzLYp2ney5AD\njou9orxaJo/+WmdtxXlkMaNrhnlFxFEed9AcFk7GU0uDw+qMWVHsig1nPEuX\nAe5FKvcy/RB/OtxKYyWQfKW/nAfchXFEOdhkBejXG3T+M94wzmv7N/icwFRz\niAf+iiU7uNlY0NtsSOvC2+avQJJn9Vtxc94afd1sLBsU3dfJ5jQZ2XIKq16A\nopT9s5COsb32qABbBup8GrB2EC0hMHIMXzb4tT/BtRaJheo3sja8XLnTYyXQ\nKlPbttoFYi9+V57E1VX/cvXsrGhN7LcWkbf57/kVGqs6NUUXmE4sKH0ag2GP\ntaITPuR7arBWjv29D74rDCiCmxxgrSyLAFokac4sXMGAzLmPhkVbMCXF1sZx\nm5DocTTVmSlQWwQZRFm86/Dp3GQ/MINiqJTaFUNqpFVlmI30CeT0Ec7SaSfv\nBr8+0RvN0oGvLmMvmjx9f6AItHiLntQvInKPsdVqoNTyBZ0B+Uw7c6/KzlMJ\nedVy\r\n=kmgY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ef86336b2c7c08b3b7d3278fdd6cbe2334798ed6","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.32","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.19","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.22_1599582503322_0.1827745473057496","host":"s3://npm-registry-packages"}},"0.2.23":{"name":"gatsby-recipes","version":"0.2.23","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.23","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"fc1d1786b23f03e77f87c86cad5a6b11b967a949","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.23.tgz","fileCount":230,"integrity":"sha512-mvP50MA7QKz3hbbXXnELMmqvW+9J4/y8UYDl/4jOpQw6rGYJ0cjs6yHCl5PlEr5yTH4qO4KKT8//qUa7/x1Mog==","signatures":[{"sig":"MEUCIQDzefGdCRzR07sbZP2LF45Ul+skA1Z/kxjW0F7bBQ7cCwIgG+oaZS4rYJeycE4+rOqu9UUoKw+cn+LhuOAwOqHaYoo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":954313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWOIICRA9TVsSAnZWagAAM8wP/1KZGGTPyv20u6qt0XaH\ndYajBwMc40NqV+CyMxgDKzGaKRrHENnMLZkxI4QNNICd86+j1cyq89UBHj1i\nVcjTTV/upjktC7jZEbZZIpQsifknvIn6aWwpcfDEX06SbkQScqN9GEr370ed\nV6a5pvzrUhZqJuJJ/19IxuRPq7SjmPY4oc5x0+uUKUI9Zfi7j5E2f+G61uch\nP0RMB0ijctUWvU6f1jRb18h2y+TVPNcYc8QA9768hTqeFlr2Zd6QiyNwVqxZ\n/7ztfa2/Q3c2u30ho5eC9vYwMGDc1baGZBnor3Hi3iRo8H51kKbOm46gMYge\nTnwX2jLmLGtCStrlgIJ3JuioVYnNT13QGG/FBtkWlxkfK1k8TJxplTbxTI14\nq6b3VOqEhcqqPljPRhoHfAmagBZoj1uPOIS1n1fbmQP/GG6+bs5Fi6BXXwcH\n1x+hooB+p3bZM54A81G+2GjVT+supdvKK4jz7dhxKpzj+wetanj0jtaq+Vwj\nJp6PNLLIw1gcU770zY0dnthWyn3E1pXO5AhGlSP+g9LTKcCeaFrCE6qi7UaM\nvtvqirZseJUj65SDL1omFuw095asZx25iCL5+jL3RDK87lqHJVb9Chts0Kso\ndH7VLLREnnNaFwE2Zpq+eurAnLDMQc5/5UzT4xqWB/n7AEN7yKaNJ8aQaqMj\nH02F\r\n=fuYy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a366e061ddd50abf12235369caf16624077dd420","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.32","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.19","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.23_1599660551407_0.3011644503448463","host":"s3://npm-registry-packages"}},"0.2.24":{"name":"gatsby-recipes","version":"0.2.24","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.24","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1f6c75c319ddc2d89db34bec40f70a20915b6393","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.24.tgz","fileCount":231,"integrity":"sha512-2Rut4j5jGS+a5ZoHXEfjo8AMAxnbG53MyRMvSrmV24VsVk19nIylalryKmtJfioOWQ94B0h3T56hPA9c2/o1Pg==","signatures":[{"sig":"MEUCIEWsjJ9m5fBkSY9mApASb52fGiVCg7OSZ2eozBfRZaxxAiEAkUWvs3vrmP35NqemJxHDDS7khYhyUQWaDMH5FNH5TjQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":958173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWggKCRA9TVsSAnZWagAAXyMQAJMdZcOaofnUP9qBEMG4\nmiNLMUoK1rMkke7J6K+iWmL8wbPgc0rdYxpKOVsUOvVh6RcMxEqEdj1Ehpse\n/4tUR/xjBzmAvIWc7YUBvgJ+yr9wwA2dJM5jf0FkdtGl8ErIbLhS6u23tRAr\nhR/trvf9gkFcovAqYeS3I5oei3PmIQ4g699pcnWBqvAykovaYm/9Jb3olRKH\n9u4l1bEZIufc5ci2F73wwfnQitmJ2FXDXFSqqCGcL0monnGUdumBy8g/JMS8\naGFQngxyn756XVqtuT58/nlMqYyxaUNYWFckwJHrtRdFOsYnRljtWFhWgFId\nPEi/EMd0djTgdGNqGqr56vDDI//wHuTsPzuCgxGZnpo4xfjWKND5LO++vLHC\n7IVM7+EQ5VcrOz5/C5NuhmyIxeeyjKFZDwq29F+N8rsX+x4J+ud0bf1OFT8h\n0frYcFXa6dwTvdKjz4bIHPn5KUBXgRvy8mZZS8kR5iEwKYoJd/ZejmInoiFE\n3QD3kH49XEtsbfQKlLJB35A6YAd4W2b9pyM69jMlym9W9BBV23mQJstH4jzd\n7XK6sT3jdzdQSoQu8RY3+w4VDRGW5qmrmYElizThGy5/uRhibPw64WM2CQAy\nRg6sD5N+6Wz5m8xG0lI5qTGhejB00Z1cQiIzy2wafU3IOf/dw1CJh9vNGq0w\nGvb+\r\n=PVnV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a389c0e63e37b8e97ff713c04ec60bbc136d92fc","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.4.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.32","isomorphic-fetch":"^2.1.0","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.19","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.24_1599735817506_0.792248506491414","host":"s3://npm-registry-packages"}},"0.2.25":{"name":"gatsby-recipes","version":"0.2.25","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.25","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8f9773c3b4690961284fb749834cf60ea7832308","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.25.tgz","fileCount":231,"integrity":"sha512-RtejWDstR1lcH/TsEbhyRI/noA3pWRl3grqS8AFNiCkKOoB4F6VhyHuW6pBqupXPz3Mtf+/yGYdDb6H/HwASGg==","signatures":[{"sig":"MEQCIEeLT+MWmHdAdD30Yz3EAw/O4c8ksOipzVlgw9IamAfKAiBvJE/oqDaEpZjRUGj5S6ubcKRMIKmzSdmaXSse/pxv8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":958340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX216CRA9TVsSAnZWagAAD7gP/0FHpq83immaXGGPJ07X\nhphCE3/hDOBv4oR8zTPYT55M3/qWkCLezMSYmPyGxvXBH5ZUCjHdWOuk8MtY\nRxX6lSWaI//a8iP/DBeb44huH+Atk/XoMaaI7QjONY0GXFdPNkC6pquZnyNv\nroaUXG0krq7tJw81/2A6Z8Kvp0Ac20ygwjUzrSQuiOh0amK/xbN3dLUoHDwn\nlL6a7qQrHvtQ1J1FiR3LvFucisjKzq6o45+WyVjgI6dbykTwtNbv+ZAnyH7/\nKnlNJ9W1hAEfF2QRwEe+arSkbcHZOQY/rLp9wQKsDi8EmrwOq+ruyrsZrw0B\nV8zKH4s/pORoNlNHXSSLxWHslR0XnfTVImHprZBP10jvCzKRpSKYz89akMPl\nXH8E5tC5mmp2vAnpWQeDoJoojeAnVsciuU3+BQ1I1fDESuPHRJ5kMD0E0bkF\nHt8gO/7RKzrCEVsqaEX5jPZ7vGdLzLZBXzYDML2Oncmb+DIn0dTS8Y5VqgCI\naHP1JOmEho6P5NHgjVzrDk3vTdSmIJTCn2m4njyq6Aq7EwRR8Yvv5L1SQW9x\nVIDSwt7S/vgNGnKa3yOBwdk9jcitxvqDukU778ok3IMdr0ppfl+VQ/1fP761\nLe77zPMzUaQWaNvDcYuWOyzHCTSGnUNwwC1/OBxuie1cibEEN568q3d4v2Bu\nVOeU\r\n=mg3l\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"733fabf0cdcc6beba8d454b771577ac38e59fa25","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.19.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.19.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.9.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.9.6","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.8.6","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.9.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.33","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.10.2","gatsby-core-utils":"^1.3.19","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.8.3","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.9.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.9.4"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.10.3","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.0.0"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.25_1600089466105_0.898781770380005","host":"s3://npm-registry-packages"}},"0.2.26":{"name":"gatsby-recipes","version":"0.2.26","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.26","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f83d759c9c874476cf83e99020414192b661ffa4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.26.tgz","fileCount":231,"integrity":"sha512-FNMasgtHZ+U9AZET3xSAub2xI+PhovBk1CWGttY1ss1MTF3pCnGg5CuOYHFE3M+BXUl1EyRYBcKbG3fUO0gtvg==","signatures":[{"sig":"MEUCIFCLXG51b/hO5APxg6t1c2sREcloSl3mrEEO9B3F+CskAiEAqsQb0cvG7qUbqEu1wGoSev3q6PdfemmMn3+/kf/MYKM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":958611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYGjbCRA9TVsSAnZWagAAXFYP/2tiRPso1TCvmtwx2AwY\nZAHerJyPCOh2hu+BjPZwuvYapZpaQPF10Lq5jOkZbHjcOhqGAdNuz17LqK2S\nSdDI6CJQEkI0bWyiP9haH3Z3NLKjDEa6HpQuqtDzCavRsU1C3MNeDLQ+yPCu\nGsThlTTrGfsgrPzCkmAPNkhwcuCPcWhXsX8HuokkVCx+NK8MlOmTd6Naq/in\n+Qa7zF3G/QQ+f7aKq3UoQcfflSsB2eyks4HDeANVK+0M0ODKnbmG7bI6S5zY\n1x8qZJjFHk8r17KxUWs1judAJI3A4Ouq5/JM1xOlnQaVMHaMPnsJU0shCdO6\nDNnUZTzEp1pXl4wPTJTDRZS4hNB+YzucXJN+HuGakM55Xa7wz3EKYRAgW9Jg\nuXkcM8DJeXPg8on/58XdhKPQPTWxhY+GUc8sjFG/guQbcSiaVuN1ON39dwbW\nbpFJjn4u2ODyNdXsB5Jm7wcwz/HWEL2iEVABwM/V+UGWd4UFNoHF894yKacn\nPaoOpvwNXu7DI+zktHNVBDqzRRiLvkF6izOLnvH3BdAMveyxHE0qf8l3HkTg\nFQk4ARA2i72bMNu00RsfAdnpdgAtTIiImeuebgtCU03uP0xLD84pHTk7YeOi\nD2sxBAhEnufJZuN6TBVyXLbZNE1tU8QQa8Pp69gqjl11vR32hpVqVGcTwzn9\nrow5\r\n=HiKg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"23d8966d17d582f32d2922df7d22b0f20fbb98f5","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.34","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.26_1600153818977_0.9409448976224015","host":"s3://npm-registry-packages"}},"0.2.27":{"name":"gatsby-recipes","version":"0.2.27","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.27","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"blainekasten","email":"blainekasten@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"85b7d31b9f6707f3980d666766ca8a085b5868d2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.27.tgz","fileCount":231,"integrity":"sha512-UaLmM4/+yyzQ/LSBu5kp8SrGe5ebOoiG/GU4z7UmKyL/rFaMdHPbWgc779b/LvJZX0159WxTHugeyQqT6JIjlg==","signatures":[{"sig":"MEUCIEFEaYK8vDLardae76qH+cFYYnd/RyXQQPsGJrnH/YdeAiEAja0l+NVG2cy1+6moVgaopWW/Z+NUxIbi1gwiWpQpgAU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":958783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYfMyCRA9TVsSAnZWagAAWIAP/i/1Y2iTydwAHl8jR8TI\nv1PzFfvRTEd8NyGz87uUbc7cEdHw7dLfkoXqjvtuZsFOASdqxTOgdP6qhRaK\nt76eaZlMZ0iZcynLUan6GJYq78zdFNXPzc3tO7ezR9qiMkGsbmXGe3zFPy+t\nmzibS1an57D/gkEyX4k97TJ157YJSdGQj3pLcXzBdZI+VskI0+iVp3zR2slL\nIMfAJ77PzAfc/57q0/5vx8484gbQhPKNHlnsR/tyzUuufMyrq8IvOIHqvRtL\n7Bv6wdXxmlwNv62JIaeqS+XqgwdY0nQ+LUYdDUrK8XRkeXfc80YYnOCKqfk5\nUVf90mVWxiZHjDXFInhfIPz7Opfn6ljmIX2qiNtJCdVUZNTGlMqd41wARmrA\nTrH5Xs3BploPRFhkVRbIpZqdwBAUyJrWYXAtQaYEQKnI+J4e3zs0M7Kpm1cy\nm6c0l+IROb4/1SV/XGUx+6zp0V6JINK3r508lC39tjUeImA4BBe1AqK2XaLY\nNnGaZ3zvsakTf+0lltAMT23duCBELAITd2MnpLFXXSGl3f683P8ALHpsu/Ho\nN/NLblUEhy1XfsNpxs0QunjtQjHT5Hm400eCbm+gupP9tWI2CJ/LAYCZI1Xq\nMDdQaY13AOOfjbRMvAxGNlrtXZ9a3phjPMSNTvHNhKL9VcAYdhvow1uKpMWB\nWRpr\r\n=tkzh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"81680798509031532b0c572751b84f84a6d979e1","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.166","gatsby-telemetry":"^1.3.35","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.27_1600254770147_0.9927499381494473","host":"s3://npm-registry-packages"}},"0.2.28":{"name":"gatsby-recipes","version":"0.2.28","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"496548ca63dd0e78596b420c4556befd309cd9f1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28.tgz","fileCount":231,"integrity":"sha512-wXwLFgxs/wHUcunpLGwnJ44rECLvrWZj8xSiuF09M9C/bz2KldbcNEDf4lsBA+cqfA2qcOsKjQKW+a6n3ZAz5A==","signatures":[{"sig":"MEUCIQDuE7tF+djkGqsDkvtRG+2SWl7VaVxl1APch4uGWPAMngIgMP4IKqyW83sgpHJBVLRo9bDX1sqdz+FoLtr61Lulw44=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":958955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfayk2CRA9TVsSAnZWagAAv2sP+QGeH5ysyt8I8xssDJcI\nfViRSGV+aPuln62YBkmi32A1vyO5bC0q2pa6vBklZY/7PBNkchzBLjUlonP/\nFkTWjrPQpkhQMBAMzRUrkRV02VDG4JkOyO3n42NKAV6gYjOyUDqegRILeoDq\nbp2rU9Wc+jp1UJ1gFHbyGuzSnwdiY2E6R78jWzTesVQuMjsoKj8+RRx8eBv5\nxXVNH1via9MuT/H6VlG5f2hStqC8EB9oD1eUCbeE0M00aCTCowwSkkCi8wVm\nVzNOs1oO+S9NZDt/iSVADqG1hBKCflY+QMDNyy7MC+GDix+IyKBMUAfxUUAc\nTbcjiCKSgo/knvxLfOAuEj4Xoo2y1GRRUHWbi635Tki2+90ytHP0N94trcPW\nCLdZ6HwuysEgN4fygaWzi0XWgPe8ySi2cBphy6lXCCNdcMRD9IoC1e23evId\n7gB3WZrvdUNDEHNSZYv4gj9+nx/lk07Palkgiw0T9NwGA+GuE5v6Lolixe+Y\nZGBXbRblJKV7Bs1fnGzMeRfApXk8XuyTuB0S68bVj5UhDoqXYDKQG9TikQHV\n24UBNVFNO0QkVGWs6SEIc+7XC8uhtnI+P5twMcTtqJkNnRF8P45ZKWB5cC6t\nqNNzjwC9aPcwikUjU3WvFjbIbG/WNxuInxBEFvNgnCJVROWWQ7avStwQtt/7\nbZyf\r\n=UMy5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"cb5c3d1883828a8c15b615405c13854ee0e8428b","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.35","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28_1600858421934_0.6058258546383737","host":"s3://npm-registry-packages"}},"0.2.28-ink-compiled.46":{"name":"gatsby-recipes","version":"0.2.28-ink-compiled.46","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-ink-compiled.46","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6eda6336348763fc3dc1ac9a62bd1a0534e71faf","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-ink-compiled.46.tgz","fileCount":148,"integrity":"sha512-R4WYR50itnyhPcVlRjO1uilquETmMAEBdYpXeNCFDnTf5aFqu5nzF3t9+bEmZgZp3VkALpczMcrXTDIEQ8mPNQ==","signatures":[{"sig":"MEUCIQCzy8ibqZ6cHsfDBdlR/9X1KTBAwsGGtvDQEoVw45lVnwIgVQXPCFUBLQLy1mtrZ1Rb2ww1qk9YOcCQyfXefLqQcZE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4687993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbKyACRA9TVsSAnZWagAAQEsP/2gK7abTkIcgI8RISHxx\nzgfHX9mEljpLpa8sBqVx1nn8D/DnbrgPtnoB4uZFzrPePA19Cw/z25DRBfoT\ngeOdtX9ThG+QTAxib9aNJHWAo3/OmjTtV1g9p/u/+jDBfZEDu0XSQSa1Fduk\nsEORCUPjEGyrFRJzr1Yk0Nd27Q3tmULHqnT1IPJXgyV35o93DBDlti/CvSSX\npP/tA2SMib9h4IRF6iQtGHduJRqQqBUws6QI0hDgNw9ZFEgCPLRLyjjPkyLb\nHIcSMdEgs2cZ6sIfJiSZtvZdymXh601xPdVgIaaTxTD+V725zRPoYvfdd7Lw\n1xEk2NF0XBMF6V+5w9Tnat3rkNU6jgxE+ZGUIGb5zclilCQwMEIJjYGtSl6T\n+rY9pLX6oI+MwnHxqXR+Mwy3QbTZKtIkI1eXre5dIY3iGmiIZnysRfu4NF1n\nye88Tq+XXFwWGVXnoPyTM2/LX1/vDL0qwdgy8xmR9r5ZlDXxsZ9eFhKBdQkk\nAY11mWMjjutotGp6pf5YRzat+jBSk4VtCZx9cfOfirlzdMbY5BjL/q7DPpYQ\n14NdZh0clmCp65kr6p00bQ+v/4TDkztYqYycFHoCRHufYauhXlcDRvquZXX1\nZLn0g6ZAIO+hTU3SkyL7Nb0Tup/RiVXt/wELG2FZLhnD1P77G/e1RJZ3+jpa\nlkNe\r\n=ZYuV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8e4964931abd916ef178291899e48ddcdba39b84","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.35","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-ink-compiled.46_1600957568334_0.4803782430418668","host":"s3://npm-registry-packages"}},"0.2.29-ink-compiled.32":{"name":"gatsby-recipes","version":"0.2.29-ink-compiled.32","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.29-ink-compiled.32","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"96aec7de5edfcd615d4f28b76756d5c5f9191a55","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.29-ink-compiled.32.tgz","fileCount":149,"integrity":"sha512-dZwbvDMOF2WC1K4l5PIqYlqdvBuGtq/sUU5XgVqH9ZctPGjPkrSTnw2teZGrW2FXIz5SVRLYf/QL5LEVjf9b1Q==","signatures":[{"sig":"MEUCIQDdIKCV6kSm7qVHYWOvvZNZoP2+aDlWkH3xhHg9xl4qsQIgLCwnPqqp9F+On3rhul9pfH79i66gxN6Wdw+HEHoK7Mo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5027765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbjkHCRA9TVsSAnZWagAA7g0P/3iUIRVjY76cSJSS54mx\npmMyZI9IvywlM5hCxvG27Du3PsCZToijOVCz+XB6o1b8uZv0+0+2WDnwHDri\ng0DJkJr8JiN/yxMwClKFNBOnLPmlq/7MsVGrpOiInb5SvopnH2rlxVzZ/rWe\n82qLJQcXlBUjDtkKBXW4vS+yZEoMiB+VU7SH/U9VuUHcIc3UNlkHZmbNecTA\nQ+hZc1yuzNJCI+u/AZvPaDDqb3zlfr5qukJDQJV4NXcZyHie0pkagOH3lGZV\nO49h5oPkwuIMoh2PK9WCX+Gc2SCMUJxMQ+TWERwIEukix6TIGbhxztqVJpdJ\n8W0SPEAFK9xY8LuuL0PJ8v4iwgUVGUB1NMgYiMgOD5mMuFBF8hM1h7vvPRVv\nqXFFn4Zm0IXnP+NLQmOQWXTQpxk2kn5m3cK7W8MuS1P1AFr7bi8sExU6+XJo\n+GX2Hh/Acf8ZuOUOyjtxT+OrRNErZCistfDL5+ZbIOtxdmcbF9tB/GRUA0Li\nhRuVblyz+ILLAJYwTb8rxMQrJxbVJVrCr4klgnFBraSUNY1BAzjN315tUt18\n6xALVF5UCKFBZrZNT4EpKfNR2rpxAwFigk1HRNJqHoGGwqBcKAzzydEvf9wn\nsFdcPLD66EO1kD7LI9BhM+Vcy+Skczj8G13k1wJWhljkHI3WWW+CP7H0jKCJ\n81ev\r\n=Btim\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"989cebd1a7f04dd16296a1e6fa946c1329f479b6","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.35","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.29-ink-compiled.32_1601059078528_0.4028677737959896","host":"s3://npm-registry-packages"}},"0.2.29":{"name":"gatsby-recipes","version":"0.2.29","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.29","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"freiksenet","email":"freiksenet@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2720979bd81043269c286426f9ee7e3df17990a4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.29.tgz","fileCount":232,"integrity":"sha512-E911POunZLlCwdJ2t7UrVveTNiIM2fZpDQ6pe4ufCaYmgWzdfEOWC24NIIuxA1DxMef748N71Ri8emU91k9aYg==","signatures":[{"sig":"MEUCIBUzyJs1ET9dVLvuzckrIBDNdYNN9Hp0YJF+NVh5ToW3AiEApHs/YeLjIUIfvbe97hkBzuP0AsTERxO3mwo0zod5CLQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":960281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfceEzCRA9TVsSAnZWagAAj/QP/1MUWRV3gEv6Ie6ah3Jx\nO08z0WsImd0h3ugkQmAhjs73tTq+j5WW8qzqFSJEQpQme1k/Io2nBrw5Y59P\njFBdv5NVqZn8aQlsF+LcKP/O57+domwKIJw9SeQYDygF3NBKe60WsxUlxdMY\nW39uPO1I44ciSYpOu3j0e80ljna5+TrPd3AgCr5WvBRuEl9OrfP4BKi64cwl\njpsluDbr0pHoB26z0SiV26mGRpTGzshWfI803V5Ufp06X84Xy/3slhDKrsZI\npPMIu89vj8tN2JcFhhelS+oIq3numUJ8m1uZcicbQzImTooQ+Ncz0fFSCZTy\nLShrcU5MehT9NKm++er4MBZPvRHJeTWNE4BZHmWEHdm+6KBWkeRm+OHWQQCW\nUavmGgH4kgN8IXV4dgi2P5z1Wf+xphFl75fygXJFfMd5kMmuK4QhU/IS0hzb\ny4u6dwqndipQVidrhIJzGl5wv6Ax1oNowhvO83WOg0B0UG2iScDeWQCCz8Jf\n3zutihOQBq+b+6UN/l2gIKFOSZ96ANZhvsmRHUNmyp719KKXyv6U/gqpL0y+\nzcYI3W/i6Xr6s4d4z9wip7tzbHmLp6M7xtJcbVVUkwDrsH0oBHP4q1sisKzV\nhhoVk6Ml+As2Y2Pq086acJbaOuNL9scUF56m7wug2qYr1kjuO2vQAXJYIe1K\nMf94\r\n=hTXr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e829ab9eb44e28961e9557538693fd752b221f9f","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.36","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.21","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.29_1601298738952_0.9961202990487397","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test.127":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test.127","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test.127","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"529adca623a388574f16cd846c345354362235b1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test.127.tgz","fileCount":236,"integrity":"sha512-PjJhNLhGZWfMLMT+mSTWjv9bDdIs9AE4teO0Ci/4OZYI1csGkMHbPMsjC8jof9M6TrUH1aEP6SdSEYrYNBSCqg==","signatures":[{"sig":"MEUCIC+7rnyqKiLAcGYfdedR/MtLULGs3HrdnTrpOOx8GzDaAiEAoWpM1WVUnejWx3ECvYUsWjTKunJ/T1zwm4M+Tf5ytNU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":980324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdEw4CRA9TVsSAnZWagAAVfwP/RPra2zuC1ETS5Tefzau\n8HrU3I9aCfYY7C14dhzeIiLWO2YtFjgtdU5FFU+9XfXl0I1y/be0Z0DlEKPc\na0om9rkO010Q9+rk+mm6PVItIidAaS6llDZFokAIXGUzHEcpmKuiKjTBztlb\n+l8IcTnPkDGtjmRcpZJxryACGqul6Srx5i5BwDJ5W6KnQcC23Z3YnyPcUB4/\nSGxD263GGVby507gRHmjk78pD7C9WoYxIedDnosTzUYr7Oq9raFEuCdf05fs\nwozBVbBLiKjwG1+x4BgOGbH7RoMkS8jKVESIL6JEBTxMqv6SwqdIVBW09y6X\nIMrl+INJpfHUHKcsjMwxKFy8PeIfHWVKHFBaFKmwaWrscsUzy/JzyBSxkN9X\n6h5fMMzTsTUjmMxoxgcXI+Du7m/Qvj9sYuVnpvqOtqZThEk6ION7igdYJCWZ\n5LGUgL0+Y3TgyaHAvA3gYbgR8L//Gbmup2/OWcTP4S+H6JCrWd+vPyMdNFiQ\nsiFuug5u7cbe9HFhMQF/j0SWIkqhucyp6M8ZkSVokSvtN58y5EZAck/+C6Ea\nAI2i/kiJez8/UXejWvXt4z59N5sIs80Dxp/CARP6sQa4ydUwnGKNozoijRWm\n5AtLIP4lA496+ikaXcZFiiYatp73+Wo8YlGJbtUEJ+0jjJcbunYOGmnpq1jE\n5Dby\r\n=7UMC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"86e375fc5c92209ab2ce294528a503f2bb125d0d","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.36-telemetry-test.127+86e375fc5","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.21","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test.127_1601457207574_0.5831919537808048","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-testt.127":{"name":"gatsby-recipes","version":"0.2.28-telemetry-testt.127","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-testt.127","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d7c66acf0f98019eebb408d1bfc812f9938b1165","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-testt.127.tgz","fileCount":236,"integrity":"sha512-fvOWNCzNNCwIbVpxo8Y2SqbBdmbGcjeFz/39nJ4OtWDWuYkQa9KK49Mjaxl3YcY5SZQXED+rS8SXwHVKz+CCFQ==","signatures":[{"sig":"MEQCIHhUt87lTlJALTn+AXhqu8PVq9QoMLYFSvFZD98tVw01AiAVYBtL3wDfrSB4v4D/XbMLMVFGCupPfJOhiapR56EUYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":980326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdFkpCRA9TVsSAnZWagAAChsP/R/EbcX8tQqbWAKkIoi5\n4mAYyVYWWVkzAdfSncFOgaYAd9GtQ4cKwVXlEwXugs3pHdxBKM5256G2Gmos\nbczWViivo31SliVRJsuArIsfpBGpP86pqeolNW24/99c13da4ZjAssqgfBJX\n7u16e56Olq3l4V8jl+zVhNegwJV8zmKntcRwOiJnc4ZhfnnOcUy6lTdvfS8S\nFDyZtNqMuqNP0OfZqPhmhTlJ9/pZ6V4+t8J5Z4RZ+iHXSZjthQ+9gBb1rvcW\n8S5TXRooi4cwdxn73opPSDUga9publEFGfv0kHu2rRI3BFYPVan1ZnO+mGkl\nzwjiBAVJvrAwagKHO6KRG+/j2q9LMn3o5FrfxPGTWZW0z9ucgvU/ONDr3EQt\n7CuEyAVFYhnMpk9kPOtvOBx89RmAoxneDjcB+0VHlk35FjfydOibKZDsJQ0E\n/Kr7oystV7s/EJ9yAxWpcbs5MEv9DPbKnEhOOD4OSF49qd34CF/nxtUkKMBz\n0IucBBqfw+6RO76BZ6QE3xFtcGzC6+okngfS3sZA36j7CDV4D3UNgy/i3w05\nhGQ+LG54BO0LPXvzSTCSRZxbvxvnq5T3ZW4S0YhEgrh3MUZApqwb5w2xooZt\ndqP3xwpBYoNDP+A5FGUHAXXmaHBmM1fuZjblGcLSBmkirhQE3U7qLVVp1DmA\nG4CM\r\n=BRqd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0104c85089d73d7a42794abfc277b0f42b1e9831","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.36-telemetry-testt.127+0104c8508","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.21","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-testt.127_1601460521074_0.34054655691982116","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-testt.129":{"name":"gatsby-recipes","version":"0.2.28-telemetry-testt.129","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-testt.129","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2044a655658487aeceb1a87e44a7957a7798663a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-testt.129.tgz","fileCount":236,"integrity":"sha512-muyArUU+wv8/1s0fKuOudJY1T6KfgcancUCXfPoZRSnWv/AmYVYGBMIxvBUQ16Q3OaeGVf99/Nze2IfoFEwaRg==","signatures":[{"sig":"MEUCIBGKCUZ/c318ruG22a0XOdG0kes+HeN3GGM3RoKYzzJ3AiEAzI9RoVS+IZRoGoW4r6yKEqxSbQtipeFLyFZmWior7kw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":980326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdGaUCRA9TVsSAnZWagAAA1YP/RSDAe++58Oa6k+HRJOv\ncXi3wFw5GvjqHtdc7Zhht2tnYxRZVpV6ZKvopVNS6/UNXfk5/IxnRqaz/fN9\n++WQrx+OzpM9h7ByQBlrGCB4sjHDiYYMvz9B9pMhkPygEQ6zgmaVqEARUbsC\nCjb2TkNkBd/s2WdjkBq2pkO9Vn3KKmyD1rYr1lA6nP1OyUBWTRmUEw3ETBwg\nqYH2MT+v7gL2k4sgvPPOfQO7LprqVI04aJ81HEAQYSF6lN9Oc3rE0QBvrbBd\nSsPv4vOR1YPMDWKfyecor77Mx1GRdqg6toYtXwh12j2G/m0lgK1hRChLvHY/\nGRAAzKjlxOzvtcTgfloqd3SAiBkXtS7QVcrvbO1Wo6cpZI7Hdyh85+FPylGi\nhaqJ+z+oElAXX2KMGBdZsPfOhSeIdVIAweP6OiEqmKxdTGT4YmOLdl8OOeUo\nr/RMRj34twosNd8X0eWOOuPUXJkniZLt7nA2hQ1Mc/EOK8r2FCYR+lVKSgV/\nnXmimBkn7TeGgWQZV/Kmg8T0KDZLF3RDyOj4Vjanz+qwmH1dmbjBlQ4NP9Pv\nwXsQOAlBfvFU+uvv9WqOCS9CFEp3noYnL56M6IuhVgpwP2BIDiZyxSUgY+bS\n4JTu8siP8EOrEQgkf3v8cHCcplDrerDk7L7qYjoXJ9JcWrgF7xYhj+i2peDC\nrFYA\r\n=RPnF\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"33986b0250f06c35647f41b77f73dd7ddc98cdeb","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.36-telemetry-testt.129+33986b025","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.21","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-testt.129_1601463955651_0.9924430581454078","host":"s3://npm-registry-packages"}},"0.2.30":{"name":"gatsby-recipes","version":"0.2.30","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.30","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"224f933c07dfc01c0cf2a83204ed487fa6c53dc1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.30.tgz","fileCount":236,"integrity":"sha512-HFb9+/ZPoonu+Ywe5Y8RRBUUSB7WPoSlXqO+94Fkf0/55eQHRxOEvyluOqksdlzlCQtsQrXLfpICYQXTstC7RQ==","signatures":[{"sig":"MEUCIAnK1OggSm10mM0E4yPqpWtv3/X0naoTMLGsU2o2x+odAiEAobpbEaKy3tN7YETMlNiG9d7vWVd9r/LkgoTXfjoSo6o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":980632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdZsKCRA9TVsSAnZWagAA2bQP/0qq1NTofZ1agBLZhuvq\no7g2TxeB2/SHQ0OEc6tK4mCbV4QHVhTtfXJ3nDFHo1LmvEUBqyGJLEAGhBJF\ngGbqCjbX37ONIrI+2HBWrW780U1mh0dtUQCmjifL2BRKYDPynFzoD40fOIi0\nb7fViIvmyc+KVKOKZQSr0cMSYRII832Ete4wmv8KlUYGXDlLUkUtyOCdqxfF\n52Cnrmu+HtVJdP3/dKSnPjag7HhBnVUMYAQLLyzyrqoDbo/zyTiVsTcQUcO0\nlWfKj3+Ttam+P0d3aCAd0FQy87mGAP5NTet2d44v9dluYHtU3DacE+OY3V9K\nXSeZyVwnhihW25Ie8qxOmv7KJErb/HB3Xnl/SVkpj6jSZ2+pNZbuB2DMFJl6\nQYF5OzCn/QamMfVhmoQlSVwbKPWiEsR0KilEMbJYrTlpLQ+oHwHeDvU7pGoO\nv8qwI5zXDpxHFpr4FRM5Q9oTab1pu5sGrDoQ9nmy2SKqGZmO3LeSKWcKDaop\nfG9ik4mhZQgEzLaIIKuiw3lCUFtFYJqmTr4sbD7018F22XXUazdnIK0hfUWd\n/WeqOYHAOfJDaIBURcc4IbT45f5qk7p5dTMzBy3/ad5/aB26F+vmmtRXGplk\nGIaLwytrM5wckton82DEj6tV6/OOwgrpARZe+1uBbR986NCFpsKBQ5XVIrAM\n6Bfs\r\n=PYXs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"57c79b1df723ba4e9f23a5cf431bad8d85c31d5e","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.10.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.10.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.37","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.22","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.30_1601542922393_0.23080612086969143","host":"s3://npm-registry-packages"}},"0.2.31-ink-compiled.12":{"name":"gatsby-recipes","version":"0.2.31-ink-compiled.12","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.31-ink-compiled.12","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b4489e6ea28720b57a3fa8a140d64a96f5a73dff","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.31-ink-compiled.12.tgz","fileCount":152,"integrity":"sha512-wgR51Ni41Sbs9aM+YKcXDTFgACgig5q75HHRD0NHAHBicg8NjUVoux6u0lR3UmFAb0ITiMiltv+KTWR6Nr368g==","signatures":[{"sig":"MEUCIQDcxWdr12CkqYcKGVZzOBbdjHp5AAwWVPaJGDKdPa4QhgIgBhXKeS0iwdVh42A0SznEGG+w6xoLlIAm9RHnewnP8NM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5362952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeudvCRA9TVsSAnZWagAAYYIP/At+ENuyxuXnQ7AY1L4u\nIHlJr1eIkHq7kdbE5N+0QwfsdnHn4mcwQKbR7oYUgnsdyLkmcB5Oo8Td2Z4L\nuBPUgfYHMRFFtwjWPFIa2YnEq/lVZY8ArW9lRCWAHX8mDAO43uOwc2jU6JSY\nYjgvg4GuZsMdKNdpJktipc4rDq/ZkGDoloyM47c1P4cLaOX4W8E6/Ct+3UWn\nNB3uVMtzXSq1c7vCH87LA5nxLvwEHkn4zafWt4e/uPXiJVOVbPFsSJj047pu\nDh8cdGugbYm985kyktnyb4tRE/w3vJcjCtR7LTdjE5e038x5u1ON/CDAQ/yS\nr1u8Ta7AjFGIz5zmHMOLXxwLpM+p9jfG+djy41HaIvNy5DJioQykzvM3pQxt\nQNX2bxEQwvo0IsZLQJuMF7c6iJs2xn8XwWRdB+AnQDHyz9i0bX5O9hvnT17r\nNZ+Amq7IEh+cskb23ayFG2mG87/1I2WeIEK59YT7JSQakqGneqdPwtON++gP\nP+RkeDCFgBYXzrBrENG7RyRS2KDJhYhyGoT1i/BoqTJJA41oqxQdUcB3opgR\nyFjBDfwc0+Ty2mNvZ7h0HqdvaRxHKP+40R5dtGp8WjGwk+jJW7Pb9jeAnEpL\nBJWYmwOUQTrTx6TUkB7OF18aM5z9GxIYBz+kmd/1A911CchRPeXtxALo6GAQ\nzChh\r\n=c1bV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c3e0d74accaaa6db2d3a3f84454265c2de674ff9","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.37","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.22","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.31-ink-compiled.12_1601890159329_0.7559784851820079","host":"s3://npm-registry-packages"}},"0.2.31":{"name":"gatsby-recipes","version":"0.2.31","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.31","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0f2f3f7b5c2f69b09d4761f7f78448ff23e14088","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.31.tgz","fileCount":237,"integrity":"sha512-5sF1U+VbGpuHE4E+CdODraAZmzQS8DbHDWP/rpNYBzFalLdFs0HPngg8zb7TbzDY0p6b5umS32OF/2P9PAuVJg==","signatures":[{"sig":"MEYCIQCh/ueiBe5nGMB1dX/Nmwg/plPVndSTd2aIvog/gDjniAIhAMBgEGRTfb4CH9LudZ+Bqp2sXfP+pt/jXqQZEsdesuMd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2105398,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffCSYCRA9TVsSAnZWagAAA3EP/0r3FwafffRYed2LWyTB\nJOieZICij6uT6/In9yxqI2Y9gh6SNQVh9JYmjsf2+F/o7YvAtjdiRck7Cy/A\ntSy6yUkSSHOG7R5B9UwTqfCHZnQyvOFTG6R5Fgq+SHWS4oerBCzmQePAfR5V\njtA3/tTof+fhjemM/lig5rwsij5MhgjIPGhtqb4ZxjCMPZCOWxDDBGa/o8AQ\n7CYTv/lWYcLEC5Z/AGbGcLXUWXv9eFGU98yNuGhJLuQv4bEvv/VkO2AaJJnJ\ntQEMV3pX4P9VZOFqwOXHeFa5GDz+1Vbff6Jo6oYqDa8OUYUiVSOZ6zLBq6I1\nWXkF6sw0WYg6OtShQYVtdkVYtfZw/o9gP89H5CY1d4jsMGl/wLiEStGTV896\nJ2jplShz4uXQT1xf+cjtAYAHQyFdPDEHOsy05l+EnT8aKRNVcRS49GWsKaDS\ngXBuKOxpw4O5dmPth/EMhsG870qPHTgOmJ8GXG+H1wkBekO7yWgohjpXG/G0\nKO2UwblTpi1yUz372+1cjIVSSEo2NehdVIP3kpb9gfFRmgp0k0oUYAYfXFWW\nzJzIB7Y2U3/Zl19J+UCJVDBJMH9W7oe+p3jHocwzsNlsgHOQX/ILHm+Jvvgc\neZLxfhSMZYnqZiiUQHnHbp973diVu6Uvsa+5sspCbWT4z5Tx+MJgPiCUOfYk\neWwC\r\n=BnV4\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"84fa4be59108d02c40acbd2fb07c96a0c85aa85c","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.38","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.31_1601971351663_0.4642327344670285","host":"s3://npm-registry-packages"}},"0.2.32":{"name":"gatsby-recipes","version":"0.2.32","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.32","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9428ba4d87c3c5c2c0a65bdfbfd0936ddf97d27a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.32.tgz","fileCount":237,"integrity":"sha512-JFmsNuQMEadj2NJwUQwwiqwgjbPHe8nXu4qDkNumuVBAX9QgbDFWqgYmk1iPRwrskEV/peJPQqfXjJTdr1qesw==","signatures":[{"sig":"MEUCIQDnYfTfem9DwDMx2C3VjgWeDpTXyvNA4vePSRqkQu/TwgIgFYjlqPIutnknj7xBIHPLEdCyibOtpM6igwx6x8S6Gtk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2105762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjYcKCRA9TVsSAnZWagAAOswP/iG5lsD/QRvk7Q61Oi3L\n3b5BvntkFdziv6vbIG4AKXGe/vQ7MJ2MtMWc6Rx2vuJ6S7KeMDanWVSu6XRF\nVY+tjmmr3x5RlOa96nY3FNYOG3GXqtHxkzh6AmNY+F8FCkmqBeP6fgquYwns\nv0SNRqps9fJR7Sp5q0mHeAL3YGodi5u8jXDj/M7BBmHKWR304f4eLQXOYpyG\niXerA19Y5dqMBhjJ7ZHDHh0szmflVunMinjvgbCqIGQVuvtRKzo8eWm4a9eO\ncM0Wxp7u110c/gVtaH2kHxtIHjKHluSqgM1v2IGat9N00OIULxOuJhQG0Ur6\nW+JyANq+VJsqPcFgsNrHzhlNVouPopEa0J1ht49QWmD5fHsoDDg3EloHveIh\nZZ/HFuYzXTgcG4NPYt3K03psXroP0/3USD7tCrp+PFs+VzbvnS+03EH1gzfw\njKijFHkYpNRxYRiktEZDkyTqS7zlY+9LI3ncCUyyegoD6zSoPbNBQn+g/GyN\nsH8VTD0/dp7Fr5zIVMK9JB7dKN9KhC39w4jTwGrbA20JP/BmKW0+yRZbisb6\nzPJZ472sVY36htkE1bvcdCqUHKv2EpEBp6bTdaONqxRM92HHb5/uGSr41lVP\nxrlzqWQHBi2AtoAU5lOcDCIzpuscWx1Ih4osmFVF9Ku17olMb68h2W8eZfPY\n5FEE\r\n=neRM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"ecc0ad37f3fb6d542964c95c2f853c25cc99d5b8","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"mxstbr","email":"contact@mxstbr.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.38","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.32_1603110666059_0.45202949193480735","host":"s3://npm-registry-packages"}},"0.2.18-dev-ssr-2.60":{"name":"gatsby-recipes","version":"0.2.18-dev-ssr-2.60","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.18-dev-ssr-2.60","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e2826cc7ba5dc106ce762a408f7dbd0f68cb08fd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.18-dev-ssr-2.60.tgz","fileCount":237,"integrity":"sha512-uicP6azXLwP+m2ZTAYiRBFmzNfjUl5MS+7WRqSiH+3Lhm+5EvCzzMZPaWWp8eWrP2TMYXtBZEdSiXUlga9fRQQ==","signatures":[{"sig":"MEYCIQDykLDu+lalqzfrfg5ihA/h9YFkRhKzC0bk84w5ZmsJVwIhALPq5fWq6SMZOVLgmhk00TqfHFiMbxJfsrNNlk5EJ0L8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":981984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjdBlCRA9TVsSAnZWagAADCQP/Rrf79WB6XzrbeaXSDwb\nuq1SPY1QEFgxK0zKGsCq+LhEvF6ze8uYsHU6ef473dA+Jls+hfaOooOdRDe7\nJ6TICMLedS7Rum3C1lV6GqhgzFeJWYmKuadImfg+8vDzEDhSX3qFiLk8pd2x\n6rn0WiKGjUQIw2fj9v5xHNmC0a/fUqsNlzHWo1QDzSMldpdEv9iWeb15jdWs\nSp+JESwL59G1i3KxahIigUfinXQ+ivblnvrJmUkZhl/d3IWxZh8vHGCusRz7\nNNUQ5Bp4+Tdn0K0ynB9h1BSIcUeJ3/xX90TPf7eyyNvqtvGh9aFZlAsINEuZ\nxoo5o3xBRSKqqiQE13TWgJkvNXcq3jkVKqFA2sGtP8IiVPnDG67FSW7Kwhiz\nVQfsEqCyozK0dacNXNLyg10bE973s6OotUslb1w081c9S1KM+zxQwJSDCYwc\nYtc3Zk3btuOtEj1gQ4MrJ/RxqLw1makNleUTTHAPBdfN5MPE+WUZik6sHjN+\nJUl66vMG3CQNtp746oD12SGwA2c/pnLMxZEGLH71roSxc07DRZVAfImY3Ewt\na/eo5o1q6odSWmyl1qpS1Re2dy6ZdDqcBdkeI3tfr6KIqloyoQlTrepyTK6L\n2x1Ni1Wr593rnM8Crj8adARFyq/icYLnma2l15XGSCwWA67XllBqlfYty5hJ\noPUo\r\n=K80M\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1cd80bf860870698296c30f4f05a20f0930b222f","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.3","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"1.3.38","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.18-dev-ssr-2.60_1603129444675_0.6070315658385919","host":"s3://npm-registry-packages"}},"0.2.33":{"name":"gatsby-recipes","version":"0.2.33","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.33","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3f6a3cd64483676beabbf703fc26961b7d5da354","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.33.tgz","fileCount":236,"integrity":"sha512-ZuDSiwuqEPE0RZgUgEb+GyjJRD3zIRTOyySgx9oXZRMsPWZS6gjs0WWV0h/JdhaWw6d9oA0Q3vtssJsv/rHIcw==","signatures":[{"sig":"MEYCIQDJvSB///eQhCVvNJBTtWyDfszQ3eLuZqFWvR8Qa8YTCgIhALgrDva4oOb9PKmA75RqbbcQmn/cHLxLqFKiGlIVvumT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":981400,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjtqVCRA9TVsSAnZWagAA3DgP+wVLNWBREve6/4j7MH8z\n6sMAGzEW3j6l2Pe6bP8QCAbXZcQRlkndPox42T0AdC4uxNFN01qf9c0jYrwo\nireJ/Zun3gn1G9VRaBfFfxsvDCBgjzC3Q97OqwNixkRnLfJsMbrL+dUe15uj\nFYvdcV6aePM7l4gLQbjNwebsuzUNSZVN48El4XQBgHDA5Nv2pz6qT+5MJNv1\nZNdOqDiltRkxi5LCtPaM/ILa7K7NKtTJyPUyZZky1LG61AEJRS6txMv+WXvy\nJYDBRtY/w7MF7xwchHvtFRAt4CqdtyMYAscYoAH42+GOjIfy1PKFW+0weHiv\nSmEEWH6nqrU6YQOHFTjhW1LI8j/i5VvMPuG4q1vgb+2jGUbVFTuj3BuHFB5y\nbv6GbKthaLXpZRAQkb8m649z69VFvVSVT0iqADDvWY/uwpaTbKqGXwWNWXd6\nFMUxpgL1xIydRHZFUNCJL1ZwTtD65ZJGO32ZzqoN1ysHkMSfcWN8Tk9jO85a\nlg8ehif/uVHo1ORhXtWABu3NT1djHO/n/8w0OcrbxJ+TwsDYf5urv/dOaoOB\nSUpm1WHifxfO5SPMtw1kY/AoTmgO77rGLfcEF6PPAG0Wzg1gh7hB7XJr/k2C\nr4BxObBUXmtaovluSlUM2A0rAWbIZp74DEdYrPgq3L8sTlOc2e3Kh9gqJhk/\nspZv\r\n=sMxK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c0668d4ef25dab4ac43bc3bf1064c95132c5a059","scripts":{"test":"jest","build":"concurrently \"npm run build:babel\" \"npm run build:rollup\"","watch":"concurrently \"npm run build:watch\" \"npm run watch:rollup\"","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch","build:babel":"babel --config-file ./non-rollup-babel.config.js src --out-dir dist --ignore \"**/__tests__\"  --extensions \".ts,.js,.tsx\"","build:watch":"npm run build:babel -- --watch","build:rollup":"rollup -c","watch:rollup":"rollup -c -w"},"_npmUser":{"name":"kuvos","email":"npm-public@qfox.nl"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.13.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.13.0","dependencies":{"ws":"^7.3.0","yup":"^0.27.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","urql":"^1.9.7","uuid":"3.4.0","acorn":"^7.2.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","formik":"^2.0.8","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","flatted":"^3.0.0","graphql":"^14.6.0","ink-box":"^1.0.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","acorn-jsx":"^5.2.0","ansi-html":"^0.0.7","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","cross-fetch":"^3.0.6","detect-port":"^1.3.0","react-icons":"^3.0.1","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","concurrently":"^5.0.0","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@emotion/core":"^10.0.14","@mdx-js/react":"^2.0.0-next.4","normalize.css":"^8.0.1","svg-tag-names":"^2.0.1","html-tag-names":"^1.1.5","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","@emotion/styled":"^10.0.14","@mdx-js/runtime":"^2.0.0-next.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-interface":"^0.0.193","gatsby-telemetry":"^1.3.38","react-reconciler":"^0.25.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","property-information":"5.5.0","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","react-circular-progressbar":"^2.0.0","subscriptions-transport-ws":"^0.9.16","@babel/plugin-transform-react-jsx":"^7.10.4","babel-plugin-remove-export-keywords":"^1.6.5","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","terminal-link":"^2.0.0","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"peerDependencies":{"react":"^16.12.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.33_1603197584396_0.6029318621704092","host":"s3://npm-registry-packages"}},"0.2.34-ink-compiled.24":{"name":"gatsby-recipes","version":"0.2.34-ink-compiled.24","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.34-ink-compiled.24","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3289c23727cc90842bc958fe9ac6280c4bbafa30","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.34-ink-compiled.24.tgz","fileCount":152,"integrity":"sha512-857wXtj9rTTH5awBOIfW6PvpAYTTvIge1kTIZmd5PHlbi0oURruO86A/QEw9Ti1wRlrumoixhFZmsaB15hlT7Q==","signatures":[{"sig":"MEUCICj9mfqa7LnDfa2RnyBbFBNUBkEOdN8uSi7f2qOqW3MVAiEA6j5MHHA+y0o/I0xnKqnM0gkEVjcFKzwJWyiV4DvLLfQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5360875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfksUSCRA9TVsSAnZWagAATDUP/2+OVaa8ldYMSoTTUuo/\n3bNVaJ8ODqqOJJJOCXM1H3zMDtetCviz8+c/JCV5qHvnHGCT3H0fhwZ4n8TH\nUBPJ9Bq63XEY0eZtFB4v9T+gpaUeejqbr4EIG80AF3R+wiwI4kDAW2RzAj1Z\nIMxiOtHQEWa8jUDYn1/D/1n7xFxhCNJyz02ymnSTuKbE0BpELXPmEl3bZEwa\n0mxTsNHxB8zhbqJWzGXbvqtOgToNkO+/4ktvTgdOfxM64FKFEJdz3Juv2QZ0\nLFc8jH96dj+GyBR0RbWd7y/g+K8BdcfkYHe2Nwz2mJKGgX5SUZXjFevYg4m9\nRR0sK8F31kqML/XzKNEcg93vD5Wa/v8YGkhBCVsG+gOIeFZSpLCvY5xVRJh2\nDJ4BLqCizRayX2HdISaBRT4BsCTvy4z4HihJbtbivrviATtpBgxzruR4on07\nevc8tDrs1t134lfD5YDbn3KQkt5+AXQ5jTDQK7RZzSC6/VXkrJxWejooB/4v\nHCyMZcR2T2StBp2LUUvCgT6aYrUZclKrDdeBCkQhVaE+41+hQtMnXxBZUF88\nd92kTqQCO2Tcw7wjisq+o77W7Zb5j+V+vCRKRIuLXxB52MnJ9YCQpYvTvtBa\nFNP3s8Asc8GlL6rP5goK2nyCeYon+qAvivIKSj51RKer4oP3jppQ3uS7SRyg\nLUiX\r\n=ehNX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"28ab48e91b223086aef5af8b0861fa32b0410d64","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.38","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.34-ink-compiled.24_1603454226022_0.49738174362256005","host":"s3://npm-registry-packages"}},"0.2.34":{"name":"gatsby-recipes","version":"0.2.34","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.34","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b32bb118083dc96a1971375de57c64f24e8a4a38","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.34.tgz","fileCount":151,"integrity":"sha512-eMZsc+PobCrF9vcfp4nZOpXBHsfofhmAUYlFw+ojt5v80HcxdPPdnK2WTIMYkkLYL9q6KBgwe8tHyRBXqjobMw==","signatures":[{"sig":"MEQCIC8WEBpp8IlNz+7LF3wq8VwiVLCrf04q6tl1b1PYRUy3AiArs5FC5txKvwK56sp3dSDOLXxOhIrnWi8WnoMOLZxD+g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5354650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfluJ7CRA9TVsSAnZWagAA0L8P/2cp3/1Vok5JpwJRV9Ly\n93qSWbzOclzB5DTkhdzISgaFnSe+vismfiDvLrA1aGiAsCabmAt6SaaLqHfA\n37APitevpZro6ctFgZUvW2RuVSBmfzYWK7C+ZlefAIyhi0+uuVERWg+KfesO\nE0vTOVt5UxkGOr5ibgB/6rf277emTN4pQbs9h3EOZXlbkMVy8Pnjn9Zr3FeC\nSCHSl8Yv29BGuYsomHeXtk+YS5ub/Smj/1w7ANKClNWq4qj1+x0RjRC+kl0+\no6x7PrVKUXH1yfXbY3m65Bz3Blp/SnGaWKRsynlane5zut6cCYJx0YdcT8bN\no/G9qWIk6FOP20rxhei42zZo25YT1ItdbfNh84tC1LHqXe1qGNJJ6x+tm0uW\nypFtDTU5gp5P66PDfpHsKbM++lUd4c0CQPXaLPnXt2ZFFq4Ts8sLBGdwv6rF\nesXRlBTwoWFoxhr0FfsgfhsAZhEXNckGUBL2FsY+OT1lBJei3hZ8occd8GeF\nO8pvPQ6qHyBezM28v0mOQTpM9RbCImZY6ggjnw01skKRL0EHbrT7/DY9IvX9\nBArzNi/hGKJdF3ZU+ADluvoo51nNBX/ghlQTGNf9n59cgONjcNZWfaVWdCq4\nIRdxc/d69jR3fM9UiCNC/OFiLpYbqVnzkDBSGX/0P8Z82AkzTmNBKy+Dm3id\nhPor\r\n=9Ozx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"10c345679b128bde0c3b8c9593d29718d00c5650","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.3.38","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.34_1603723899180_0.9350472090677879","host":"s3://npm-registry-packages"}},"0.2.35":{"name":"gatsby-recipes","version":"0.2.35","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e123c837010f191b6c42a28f222211ddfded76ce","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35.tgz","fileCount":151,"integrity":"sha512-qAddi9cZoDSYnwgII3NSuQ7LvF3oVguucKtxu6xa8LO3iEMhb/8XW9eIMmrANRpICxRvAaIUpeQO28+Yql3gRQ==","signatures":[{"sig":"MEUCIQDcAWAKzm0qpOKb/++IxhihY2lK0QtTTN4DcqHbYQRg2AIgDGP1PfNTj+SEKdiwNxFj9rmH8ZXqyiVsT87Xbq32z1c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5353601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfn8dQCRA9TVsSAnZWagAAP1EP/2SW0Dwzkr8XBW9Yr0qn\nML2izVLZ+EH/iR8ob6SO0MsxPAK9NUSjdoOxOQ7sAJy7WNUdkVL1oJxIWCTm\nTvfThsvkPtD+yC/BaCCqwwMCpo97hqhgClOBP9ik9hYmVWS2gMjQ4Ohaoz+2\nLCL7O9rDoK9UFxSt55fabOyoOZUltW02giZXeItsdQKFEXo5ddMwqg2DsPXa\nRn3uPHhJCFpnhGXI2kHIkPwAEFU7Q9nGZMHwrkppiMXn5XYXYFJDRcZuqqD5\ndXrUedtwMm2AN3gu4ZvKlvHET8/QXLqdC/mVTqmCXXuW95dn1A+5+i2d3lK/\nvhOjJc0RFReJmiGdKLudJ7vmtDXojQiaFhygyEess5tt0+H7WSauAB7IKzSf\np/y5m1pihmsGxSXVH0UgzdWwtHd4DA7UZfBjj3R9SEH2iv+9A0QiOA/QTC2t\n+U7xwsxLINasnMZnHOHpXPwoG8aWt0RoOov+uK3HhOZ7HO8TTEpITzEnezm8\n1BvYkHs+e5ZGrJACtIO/xJJa3gFhAIZwkW4Ux6Zt0DSB+C+imWvd8J0r43yc\n3PL1rzVX6KSBVoR4+YNgwwGdCF1efR2wAkWvCznUu0wWOQJeeuHmx5tyzdUO\nJQtTfw5sPA6MFTAvNgs0i2HVnjK9pOmOc0jVauP7IRCbMtK3y/oHdeBrBszz\n2cl1\r\n=MBDU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"5fbfaa81260fabc88aa920b04f3d51ea568323d0","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.3.38","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35_1604306767418_0.10088055991711475","host":"s3://npm-registry-packages"}},"0.2.36":{"name":"gatsby-recipes","version":"0.2.36","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.36","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7e548c164009e1b8f7a02196ee24b2709284c776","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.36.tgz","fileCount":152,"integrity":"sha512-GrXRHdEOyGHe5r1hyePWc7kYM3yIu+RDargLqgHGO/lb76ZXRYhjlQ06chL3NMbmxAMYF3UcIm4RSlTS6rLkIg==","signatures":[{"sig":"MEQCIDgrtHGADKunGzOFfxFWsqhFtHCNckys+OaZjK/wxTC5AiAIbwUAyC93Ta2z1FsSXk7RO8qsIUZQQ+xdivL2OerZew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5355344,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoGaACRA9TVsSAnZWagAA0YMP/3H/SylGiBsvUNEsopm3\nTYoULyiglErL7k0lwkxTPA13JCUMRkryz6pGd7RaiXSHbJ/wkV5kb18mfKHy\nco+wmqPQBusW+P9VcR+M5oCTUL7tDFpZCjeT55GyuYcDgjS53GFGaGze4FnQ\nzgaFarncODWXBUL77DrECwJPnQeVTQQsnArX+jjdAgITUStVJX6/y5LO6m+9\nnr+58NHZZi70OPnDPT7o+aZNa0tv9LtRnQCU8NmrPoOiIdrZPIBnfkC00RFC\nDYiSLb/nV6DNbXfSAFeWoqULMQarKY2S1awbG/DYAapZMQwjAp9zD6zkcNAU\nvGUhrxBncKH91u03aYRqe44bW4XsjL/2I5ZR96HwfAPN/RhbPD5kPOO2xc2K\nuewljm8quljuP9UZaXgiWVp0+yiwHHup/cpXorF3yvKa1KBkTSXpWOVd1zbT\nUtehD4/TvaWDjM5VdmzWcLHfhsxLYFOSPjSATltG1yN0kT1FjF8Lg3th+i3/\nGnmLb3sYF44cirXPJwkL8lO8dg8rWGIGz7ao6NhzR5j5cON/jEV9+/Ob3R7W\n7cDjBjwVF4zxyOAfkokWsFMll56eCjTHB0GLw/iedGU1VQ8VrylecpFMW+Us\nz5jHZgusj+i4cPEJFi3hOZ34942IRBMuP1HFa/jGmt3plScCVX/w1IzllzWD\n2sxd\r\n=OTti\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"6615dbb12f8eca13da26bb25f82d4bd1785c5c3a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.3.39","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.36_1604347519915_0.9997174374491573","host":"s3://npm-registry-packages"}},"0.3.0-next.0":{"name":"gatsby-recipes","version":"0.3.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.0-next.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8a98fe9a3b0f5f1e588deceb5201283ef83e5656","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.0-next.0.tgz","fileCount":151,"integrity":"sha512-7ROMwk6Rdww3/0x4yPGN5raP/UoLHjUDT+46wpynUw7WC7r1CL0HAHqI+oPLAupWpSmdYuM0vG1Ev9mLaBV9qg==","signatures":[{"sig":"MEUCIQCC2U5ZtHfG6o3zb7jS3JlxhIeRICxtt0RgxPgcT1vQPwIgbYn/iAGYvZ2C6uVAVAi2VEbWTImaQX4pXY1hi2nrwG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5359095,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoYmVCRA9TVsSAnZWagAA6K4P/j0S9McSZpOpzEfKU+bL\nEofYP3Q+KfyzDysA+ml4Bxe7I8cXLn5H7rBThjOQZ5o/mgPyUkVOEwxPG707\n2hVpAF0uiUJdBYxxh2idP4ZrJNHg6z6GpZ0+8GtI1IwFNplRyx26OvxCJgIu\ngZXm/46kB47rn0ht4Gpusx4sNrRIEukaEDvjckJ/+UVewsez9jtg0P5FVNUS\nAw1znOZc73KVfFp6LkbjMAUAeO5/xKfrzISc737onPHFPo7eZ8bZCHioIQDb\nXZbCUi14PpiTbZbupj3vaq1YrhQUzxnn+0AJCofcpq2hIFOJM8AfarzlGVs9\n8oSs0wx9Vxyvj6RsoGT1FRR397kVe+lBWUrKbAfgdaFj8uPjmCX0dPqADlp8\nyKOAYgzUKeaD5XTtTvK48Bz2xTkwXtbhz70wB3Nk7m2XLYURX8ggL3bW5eEj\nzeWJScJVNDCqBLjpqJtOYLEm2YJN/+9IocHw8lo2c77LkI+p0zEhKx+rQQVZ\nrBxY190Bqm6kL2Tn7c4DlT36+vmrYCiJIIJK5pyS7Ov5u5o9GHeuGZNaKzpv\nptRQivyqTjqcIwkr+AkW/1j9v9HnRXFeNhw1bWWuBSU7ZUBdAGioZbQ03mt5\nS0/0Ni/LoDUoiUoli9FidBAYTcuykVfa8nw7b13JAiGnBaGM209JbLHlG9E2\n4hpj\r\n=2zNA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5c6e3e67b059a72147075b04e99df44da5052c65","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.0-next.0_1604422037039_0.26646753916832044","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.45":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.45","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.45","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4ca2751377ad5cd768c87e54cdc3ede0aedc29bf","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.45.tgz","fileCount":151,"integrity":"sha512-ZjG5DRrWaxNYeeiR29WdU/UHCZjlztMrRii4lncqBiCh7Vlqy6zyT7SW9y79ieRzRLENlchQrU8R/O6ALM3G+Q==","signatures":[{"sig":"MEQCIEB/xb0HvFpuydDrtQvKiPDcgBXUGaZIZGh6ZCGwTyhfAiBJjM0LDiTn9GbSmsIeSvvbQve8L6OwPz8InJxGs0vvtw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoefjCRA9TVsSAnZWagAAgLIP/1t74EWztmZw6YygpS5F\nqK1Mca5s+Dujcbw5Fbbw5OAgqJuTpRqf9xPit2yu7sAC5BDcAwOw+bqwVFwr\nF6wDeW+jxvgSdnBQtdM6WQW11Qax4Df6TUcUlhubwK9YqYfRQLaDDb1g+gN8\nV9vMhLKNuyjKzgGPzvvGWbL9BvXugRG2E15V0u4LY68028bfCQG5WtYi/edn\ndrFvW6TDqhIMyN9h9TfdGlwOZlF51qDE0HnKcf+7LAXMACV2UHIWCW5gcCo+\n2q+aKi95vdapIqcwufByRz4GM001/DsWNriD6hDnaoLRTfk3pJbamJFH5Y6F\n1wEqa94uI2xVBFE8JMaLyAIK9UIXp6bdj6MAkhdLnO8p14EDbUKgvvou3XfO\nP7/UKntDelBbPJrEW2HAqctEuIiUnTPV8ZCNvFUC3kby6b59YAH9p3dIqSqq\nB11LFE2CjW9L3H7zrlxsbo02WS5++rWv6YoCDo5hSso2vC2ohJ/+Sdsg0uK5\nOhlDnc3rnIYnkGMli6z5Z65NBo9yyfIt5FmwQU3lnw745BAhXXj6fgZIKSlC\ni9znukCVx/M7j0JMAin4FHBLpFOhcQ0911H2okX4mqSt5HMP4XIs2+rWWU4t\nFENAvQ+0QWyadyHvudeD4VWFXn9bCCd1ytaah7pYqC+8vXXIzz08nsPgqxlI\nVqh5\r\n=ZiWQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"43cffa94ea0ebc7e48b06faea8e0363fbd90de84","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.39","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.45_1604446179351_0.5882044330810237","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.46":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.46","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.46","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7cf8730b02ce199dd40b92ed477d3dbeb4176234","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.46.tgz","fileCount":153,"integrity":"sha512-3VZ3rqJDsF68X9HaMfebfV4ZjJaY//77nD+9loNHNzVUhYQ5tvCsO6V5mKW3O+bJw1UsyqRLre2XlvPl7FEf1A==","signatures":[{"sig":"MEUCIAE6hRwZEsN9JHOld7MV0kIRqIcoLHMOpURrXAMwiwHMAiEApWEXrQodgSbcwEUH8CH7PW5+c5cZh/Dqx2Xtmn91u58=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6074848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoeqrCRA9TVsSAnZWagAA73YP/RfUG/AFxOlKpEVEUdd8\nf1tp0uDKpSMnzCCldtwuKV2AVQnkEIvRmjN9EnblhQY4hi+V3GaPcHdWFYf/\nJWCBqXEf3s9v5H864xPjHKJMNgp3/PMAuirLTfgc1L+xdbR3e6ey5J396dq5\ntVeKryaKZ0r38QdHJesQ04R8d6SLA0sBYBCJ01QIOQM9RFZtm77C1REAZ+Va\nIHrLlbE/SNaWMeCEsePdmtI3Ph5ifJqYzwl5+wis4YgOjcLccaSgzK3kRbAx\nvB1W1ZkTCvc2+0uKmAIDyhTQoNBvbPmHy50DLQgmPPttCcr0qe0P/5wo1m6V\nWSdJTtUEHTFa9nq3k8P6/wdNEcKjPc7c1ggX98asT+l1B/qNOW/d+DMR73qA\nJCpFVa6c7D7KQZxmGJpHjDXejD2/0nucmOm7mu9jEKfXaaxptrUaZFkqpoIJ\nCC858SKEmbt1PFZXneyByBLVRofau5agTXWPAQqZFUGli/iSd3NVxII2HqBx\n61z8ZeFT27k4c68nlYcZyqQ6FSOcBwyhOOVq3Bz242Z8SgVy20uhcUHOMbfi\nqZ76qlW0GvZoPOM5dYzZWpG/nAQtOuBHz81btPdXhIzhdJHJyZiwPTYL2Ny4\nqueyYr5/RE6b8WbSyjOJ4/gFlp799PpF03nuW41fFTKDS6+Bz6+WxJF+5hqw\nJL0B\r\n=0TH0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f19acf2b71d0b6f9e5fb7baa91b2b881809421b1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.39","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.3.23","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^6.0.14","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^6.0.14","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.46_1604446891293_0.2769376026287196","host":"s3://npm-registry-packages"}},"0.2.37":{"name":"gatsby-recipes","version":"0.2.37","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.37","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"988cf5dce3a655dfb51276621a4e689037613565","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.37.tgz","fileCount":151,"integrity":"sha512-3pBvAx8HdrFYHv+o0uUiC5Oyd4206wYuQdETib/fYQhG8JxyGCZTDIzy/9RjBYb2I8xm+TlK6jpucLXWlp5DcA==","signatures":[{"sig":"MEYCIQCAdI88Rr1SWtWE8/rR2S6CgRRUNVdGsyskbd5Vwu92sAIhAKaV4r/o4icV//wHJBrYQ464VGg/c6+5WSXGZITD4RfS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5359249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfopOOCRA9TVsSAnZWagAALd0P/A4x1FQ5LpzrBEHxoIO+\ncGJlpw2x4icIsnDKYm2SgXqgUy7xio/1xW0xWwGfhYUKXIUSpnjrDkCDcyfS\nDwxSB547jclZGKiFIXcA8+XMldiRBcqUezgdTSrtG5ZQEADkjWDTopSNSmcx\n4pR/Xgz83a/sPig2KGCvlX3V7gCwZzaPlQ70Rld9fDl58vZtq9OoWNxr6iFj\n7QDNV7VXa3HuVarlTffWtNaFTzSeonZXygEYjqKFLyZ+t3olN+z8RsI3GKGB\nXlmeFiuM4JNHtuby/ebfonPR3TPnz4FWS0NDDFyhhzl8LT5mceW6YRJHa60l\nRQULmfUwvHgCUBsLDz3av/XPNZRHUqIQ/rSSlDzHrhle3G/FANd1CTHejsAQ\nTKIdC415TABeY7iPWhfQ4j+twdOD6pc/vu4KIWqYDwIveaRWbPPnYSiy9W98\n9XQQb0NES5rb5uBZsyAo4cOJcsmOLOwIWDPeWb2HykWbxaoDDs7olC3JfPgp\n9T02i4ZoDsIaSCMDAibkqCfhdM+y2V96/jTy1HyzT+18R9P2dytfbDw8Y0Ks\n4GexzkwPmA/3bsyDuGPO1NsBxo+7TRv5IvfNJbFLs61iXEnjWHoOQxDUf6eD\n5ZfiUSIttaAdVNwulK9LCeJa8WVmUFMykEfYUHWCcj+6N8cz7RFwk1uVemMT\nqTIh\r\n=pWsR\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"077b67fa366eb5c5e0171e87eec8c8810d44c0d5","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.3.40","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.24","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.37_1604490126021_0.6277695361473965","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-testt.423":{"name":"gatsby-recipes","version":"0.2.28-telemetry-testt.423","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-testt.423","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"067998521b7200b0af2cc883c970fb4ed71b3c76","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-testt.423.tgz","fileCount":236,"integrity":"sha512-E9cCC/Na0tk7EDmU6PtbwxgIoJBcV6QhCfeNXEEnQEMmIKLB/knTrRT6TdV/2HvY7NNRbGI9ISukqqw3FGljZA==","signatures":[{"sig":"MEQCIBn04hw/R6bwNNnVZt2E++NdasB6bD/vYjJJWzKMxhJNAiBGVh6tvMDEYICl9vjv5RTty8wX1kfrQIjXxai+q7PRqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":979740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoqGnCRA9TVsSAnZWagAALMkP/ie3azZG2e7eeAgbQSOL\nv8r3tvplx/drOenSFi1Rx2x34Uc6GFRR0EsxpXWWktWJGtge/UannPrB3Qd2\nvsIABs+BPiQO8liMACHH72/pq2s7Sz5YbnenzW2J34h01F2ybP4dJ9hfsepJ\nddtlEXc6SfdbQOKTJoWs0N3GpINYl6zsBy6VwRhZKdcu7gzvqU8Tp+jmdAtO\n1WiysRoOJ8sIKzzOpCiUquMUYkfXr2bo86Zn6tGeM5F979TVcGWE6yTWPJhU\nE51AR7oti7rnIgXWLuZ60VSh3v4yEbsyxpZWRR2LHSdJcHGRoLxjuaaF0n78\ny0kXsvz5PesaWOCC9pPdOEwXjtoPaGAbM6kcgCwgWG6f8dVhe4TpzaWRJtPY\nBZ2QRY8+Wm7JpVA1ZlTNdkYxCUTwrTIAvgkKj0Q19O0qvXU75zlCws/J6B/A\nhf/V+rdGxOs/tr+Cz20dhBlPpJ9WjE7cvyP4PMPFKCG1EaM/FH+dyayrgYTv\nEibMUSFyj1A/lQWQ4DEiMIDxvgNSqoZw9kpn7GJUNHyRRqohECRc1HfINUEd\nS6PM9LI6en75lLBeKrSLMrEdJuzonXBMHgG9QrecqzbNthvsWNq27vm8yDeK\nWoH2jyTmC3GrwFn3hJd+C5WeZmW2z81FDEjDlvpA+yqxxjoMRHVUpMtSdbzw\n4O/4\r\n=cUD/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8e2284fc9c305538226f9438a842fc5a6534adca","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-testt.423+8e2284fc9c","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-testt.423_1604493735279_0.6759135706741362","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-testt.426":{"name":"gatsby-recipes","version":"0.2.28-telemetry-testt.426","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-testt.426","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8d344168552e33bba7151a2b1d454b4b8b2c6d72","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-testt.426.tgz","fileCount":151,"integrity":"sha512-I6a1TMx6iIrIG/nE3oTk4kfUi6dRY5zmjbiWVoNM4gS8lSTfIX5AB4bvDjAJ/zi3gJu7UQObh8iKvWHlCN4V5Q==","signatures":[{"sig":"MEUCIQCPhcNIZ1ZPefj1HU28i2OJk4lsgVWzRgC1itRnaJt+6AIgEIp3SI8pOrQ5HwMx316A7FV69nMNkAUywkRiYCGiuxU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5359145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoqeKCRA9TVsSAnZWagAAUOcP/RMZxJ2O3xIl9da9R0h1\nnpHwDGiPLV8Be5csAw23TX6OmsalnyzrRKOJtNYH/DtR4nM1/Ny8xQ7UuSPW\nwSSlUMMO1IWrCIBy2RAO+p3oMW106JBuUNrLGgx2ZLjtEoMM4ntuWd0XKOV0\nnRMrZZqP2ReOjOUrl/DOBVsi0xaghlqifSJD9Jclh14AqVZczw0/s7qhHjb5\nJ4iafPBPS/BErEr6byye6AW4fNtnbu4LEE+3llZQaLDWExonxloEdHedqYsX\nXB5xlNcq6KKukSeCWu8anLj85jYSnD0/cJ5JHYEOgUy6y2F9r8sE/Zo8HO+6\nczQZnTJMyGXdHC3tv67Ut0stJtpa5dGedaGtuok4UxcRYq+wmAbwVhphJWif\nsajkMZyw7++6DNAjjYnt/3Vgz9AjkYgosYPuWGWjtfreWRs4MEo5jTX2fbHy\nsvTfK7swBQWA9cxcGlFHP9rRNjgfGI1R5+7/So8ZzidHpKKSdMcQkT0AE/yO\nxmDr9hrglrvJjGEm7KLHS2SfI9MX1CDFCzoXQsIiZ9nPbsP9siwvM0IJj+Fq\nMlV7LhdswrEYYvxuPsnVLbLa6B8k8uFGXrFCdTVTeC907P5NouDlRbRAcfK5\nCdElOHbUp4qezG0f+f9ThDMArQXrzeXPEUxzemk7iVxpilSwbox/Tw6Nk9Jw\niOrf\r\n=DiQM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8b2a02106f5ec2460c057e02e3f71a622789c41a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-testt.426+8b2a02106f","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-testt.426_1604495242422_0.9152820392058039","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-testt.424":{"name":"gatsby-recipes","version":"0.2.28-telemetry-testt.424","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-testt.424","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cf8753a94ddb5bd4b2dbd10e0486d45011365df2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-testt.424.tgz","fileCount":151,"integrity":"sha512-1TBi1BkktFipdCZAJW0qJ8WmYsPWGEP570y2V4Ks8D1Vs/5pHxPGpbkH7pvsX/DFgjUgxm8oc3GdXPvz8FiLFw==","signatures":[{"sig":"MEUCID0PR6mHMVMUSWeCqyrQSCtO44gaBIajTo8OQKpoIWjiAiEAmNb/XFXpxvUOU7wqtJVDryIWMmNgJ8DCxi9KKLhOwCY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5359145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoq8cCRA9TVsSAnZWagAA64AP/jNM0C65PSdeoaCfQIq1\nCNvr2eKcOd/QE1qgtQ4qi2TVRC/LTCKzsVNnfJZvpKHAufPOx6Us+/9U2bPF\nqwuuhGZfz2GnTYjt1rS31VyXEiYl7aS7gu71vtNsf46EyuE80cqtK6/xZy7H\nxJHHdUcZgVSLsIfO7UrAOdDJe34wV6ulnhHdJH+yTJ+PlkGwAegFGjpLlm0H\nmHedvwzhR6JEsQkZtFp74F0+jb+Dv4sV/qp4l8XaqjyciIlEck+jJl859gbN\nyrk9C0BQEZ5ubmRSwA404UCfE3HOg7yTcZG92P5xKa8Yc22LnhXSWlvSYkTY\nAcni2ZQOdpPQToGMztUDPdHP38PDNaaSH3Feux04nFXK7P6OHfdK49gB8khT\nzdOgRUZq4Uh9xMsHAOSmXCRcwBlYCX0lUmfagPCdzgVAQIC5SE5aJLtLn2ss\nSoduWraw9DNG6LeuXrP0iS5VTq+etdqSysmuowAf/rNxu60YlcMQb9KKZA6b\npTdT8SpIZqFDAfXYeW4eaVUdxtg5Y/pBmolsGij26lzQd3VYlkOnN7AhIzjq\nRqJvsyCvmJjAugpxhhN2o1gf4y5AUwrRqhj0KCerLRSQfYmv0QOtFntQIBWv\nqlUhFaAEOKSQlgdWUkhBDTnCumtd+sbHj/9sDa/YFq2QwvetpwH9F3MhIRMD\nSK/P\r\n=hsya\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"40b0d889c5a966f2af311b19233ff9ebf86f770b","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-testt.424+40b0d889c5","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-testt.424_1604497180066_0.2406207031010068","host":"s3://npm-registry-packages"}},"0.2.38":{"name":"gatsby-recipes","version":"0.2.38","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.38","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"dae5438c8bba01c9b35fe0168ad52fff7bd1132e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.38.tgz","fileCount":151,"integrity":"sha512-myCRjxVXVkQEhd+j03PFhtos6xByLahNEn/8P9WHYBQ4+uzWryoPItB1Mvrns/DQa23KuEwFunlUmnKTq4ydIQ==","signatures":[{"sig":"MEQCIGDzOdQl84lvw40HYkNjlzLlto09By4fe+HM5t3z9FTSAiAX2o/eLjXZ3hTxp/4XO9TXeNV0CR6zMSQ39aPVBA7vCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpExOCRA9TVsSAnZWagAA87AP/06mVvZeKVp2u1zF4Tkm\niQ5MHzkk81JOctFfcxwqJmaTMV/7we7O+bR0AjuMVC3f8WMt3HTn06nGajYx\naDWvi5KEHKJSMnODgiVQPFjRwh3bkmCogNZ/ppLdZgXlCaIAeHQUe+QcV3A/\n7mDpdv25kmnD+bQ7tw6B7PGzAOIl8wT6sc3CchZ6NBU1A1fMILboCaUiJvly\nr0uDxwnLfFDgcH2ew9j47Y6D4kNIfZCkGvtv30n4u82n6vAh39r06gqmv/ad\n9qflWMO4BvW5+fweNnpTfhxRgzulKFokGacDY3nrJLdg6GqL2xnB8+XCkfEq\n6USoeAUoeARbcGLVzQTxRCE7nqSdrzSwDIkHUoOg36YiJ47xn2/QL8/307dK\nOfsrJaml6S0eV2WPyIGQLEt6g3f5xJvMcBvx6U2t4Aic0QGuteocm4CZdtd7\n0/zHB1b+HimO2xlionSssyLg4coaLGT9vi0IQOUYBlxPU6zJjAB0Dk6XOYPQ\nVq8bD0xxfr4IPFVwexZe48M9ZaNxWZknP1ieBSyBDf5M/QQw6mHGr2Tl1qmj\nGJUjKB2AIKF1qF5elrlPbUWe02yd1fzQ+UgOC4pSMqFg/r8OJ550bjbnEoud\neVP0VuHgsOy7h3rKUKmbm+d5kEjWaWAlzlgh2QpiHcVW0rS70uNTWDeRCrRd\nFocP\r\n=SR4w\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"9c2cc79f76131a7c148ff24d2ad185422ff8c134","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.3.40","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.3.24","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.38_1604602958003_0.995498248405603","host":"s3://npm-registry-packages"}},"0.3.0-next.1":{"name":"gatsby-recipes","version":"0.3.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.0-next.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9954bb06b2eba48fc05580251bb18a6c61d263de","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.0-next.1.tgz","fileCount":151,"integrity":"sha512-XgfKtiKTZEIRGQbIOfLtvfMBZfNVFMSDTgHWbiEUjoD9C8iAwD13FZcXGsxaeZACW8tNAT/9mtRs/wyqujJOdw==","signatures":[{"sig":"MEYCIQDhXl4gO5FQBgYXPQ0SgIRFrF4X6AVHJ+kzJ7UAkJhW+gIhANfyMNM1Zng4Ay/bK5k3RYEzCKbZnrZ/O6flnQsyfvz2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpFygCRA9TVsSAnZWagAA8YoP/RvLUmMmaiTNyAse+9sr\naE+l2P/8RBkp1ki6h3wEv795r8unfoEy9CYeDJib7S1kOWyZ2qs1V8D/fUmg\nFFWmMnLe3Y92imiH72JMStAo1Wv9P0LKlYm9uT3fGqTF3HQyj/SpWvBdUsJA\nKi5W90Ia5KWfHsw/CcP/Qh9bq+Ashu4v6rrNwdNy5HzY7OR3xHXKlad/wZKx\njGRtSX0brXFtVPJv7R99emNPL5bbhnu3AoFauI+TGzoHee18pXD8Nz1GvrRt\nMiLJkhiVepcVhEljkGz934aQD45PW4+HACJkboBSP/rKAOy3pn68lD+dsA23\nQyZ/aulFX7l3gf0jCX6Cbbig96NjPmHv7mS32MCo+RexbcF1DDTpfuG1KHIH\niT8nJ5fLtscNhIwA+OaxsMPQHxBhzxJ4fJ/PrNSioF5Yg1SsbYp/HESuRPza\noFtucSsw7X2DMuC5o0ffKV76as9WCha81/BXVRyuewF76WJhyWZ9iB86BFAj\nW0aEeS3C/zSuujSrKwp4SJfQE0YIFi54Vefthl2MkgY7Epi40FsdhiGdEWB+\nRvQSMr/iokNF3QynslEgy8OxzxVscOpEpgku12HhGui8cUuxDvSxMHsEs+o+\ngfsAw6WYiT/CN3isTy9XyAKj28OKVm+X4zwQ2zWAGafIuuM87h1+4x7ymayY\nbJLa\r\n=sm++\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3dc24b22a618fb3ea81e6e123cd1d5b7ea43b2ac","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","resolve-cwd":"^3.0.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.0-next.1_1604607136182_0.4688669833946506","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.81":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.81","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.81","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8e0b0d316731504fdd6fb28fe6a42cbec57f369a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.81.tgz","fileCount":152,"integrity":"sha512-FKojvf0xmMWu54qMxLUcHLbSC63BdDCWmfMENSLZpmNAMt96bFtpf7n50oXAu/Ahl3l/zFZTzBDLe9ezigM24Q==","signatures":[{"sig":"MEUCIQCts60YAFXLG1IpODJYvBdblhvcHqhMIml36vLgqLqkjwIgEVBKpvnge/He2UTeGDB+442nFRiw5EGMnWRsV0zrF5U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6491007,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpkI/CRA9TVsSAnZWagAA8SsQAJ2OTo6jePVXAtXydVzb\nYAEI8b9Z6n3yb6wRXcRmS2jf+w4BE6lRzn7MVoeXQA33N6Hiqgu/wFnXCfuR\nZ+KORAZ2275Lhb2XP9xw0ovz3y+fLgqpeLbVtmBPZaIasmxzIGPC2/ADMDom\ntl5aEBrMMBaEzxOJ4C000ypZatDn/O4xU5A//KiW9+d8M2i5SewObXbpoin6\n7aKQ23VMeKVVJKX1aJMaKC6sqmHkDvD/kZ0tkLe9/Fdh9VrB2iACN94xn/oe\nS63wEyGU+RSOg7vPY0SWkHz6xuzaE9P/uxIYw+Hb6m56OOkzP75f0WMREqbV\nO6mjg4nlbEL040CxuCgWDgmAFjsMmFnN2vjgNGU6C7f2swbEGbjycYaNN5ws\n/xt74EFZUICel4Ikxvpyq1UT+FKwZizvY070Oo0N4dmYiQwmU7GkZVSNiNUM\noEDNU3A3XAR2eVgIaDrA7+M96a9MHNhmS6dLsdD86p1vDjQiu4qMEcK+94Mq\nWr5PXfoqWGdhothJ76ll0GNHZm77IuOJ23GqKuwLO7A5OylgxhTgQHsRlLYc\nyZU2WW+CnngK7UPShvM11hcAKFEgYrB6zt4KH3e71CYoH3jq11fGMR9KSNvR\npjnaHGqR9BGR8o5MjQAPGktS3ezmSqOcxh9M5ZtLtOmQ0r1kupkcJE0Hr7t+\nldBh\r\n=AP5w\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1813dcb84f311d8c501eabd004aba9932ef48d75","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.81_1604731455064_0.9409657518892698","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.82":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.82","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.82","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d5e63533645dec60ff46fbb354c26102e6b9da7c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.82.tgz","fileCount":151,"integrity":"sha512-37NwXShh9tw9tye7ahfWJ/UKPxOKi9EOU6Dw1Zx7qMpmIOVWenT2tAlDzMhf27r8yUxcRhIBYGj+p+F8PMI33A==","signatures":[{"sig":"MEUCIDuDmZw14FfKbhdezLW26qGWQIWB+LemsJc6uh0IZfbWAiEAmO5yXCAautokZAfNh4p/wZs9GLY1t3Kea2OwN7y6Cug=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5363589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqQ1FCRA9TVsSAnZWagAAA5YP/RILB9BQOl+xuOa6kbhE\nE4RJk/lAGCCSP81fMAHI3OihLwjwMTLtKxEzFNHUg8dSVM9309doVqWX4trT\nfrC6d1fVSttq9lezudmqaYkAaBmzNkSQ4OAffgsH6ApAunihZ+hFAr0d1YAN\n+nuIS0MvKBHnGdFliyEm8swAzUOmJNhtB+FCOG2R0GnQETKqENFr5kY83UBE\nnOzegSzCW9ZFR0+dcLDsSWuYON8Y1X2rVq1quFY9QuOpytatHgJuM6hEg5gR\npos2HEp/CLY1SW0LjvSF1C87BHbWVAcOy2AioKlbtmhsnjxVVT5WyjRoG7i0\nHoe6DY5tXxenm6bnzhCom6fueFIFa9+Zu/Gw6LgoZP4CQt6xzEmxTudZN9TR\nfaIkh5CErejrjzKfRBuXMv3KIlcEfCjY7Xtln6amBBv9Ynr56Mcwj9uFfryn\nnKqm+m3iEiZzQvI9eoUxah+NF1DU7IQDETA1SxjYw5ic0r/uyyhNkq0qb/A2\nA19PBaw5DmPL99+gxEcP3BEz3elKK4HiBjLJpdq9K73WzrWur2AHziAhoZSj\n7INNbdF49VyAzUq3kNBGKrWH5K3c5PXGgMkPK2P5Qret9X5xIK5pk2CR6w9J\nxQZqUYqg5iEjjSZd5R1s4V68HZEr21cCg9jpeBemz+K5SgkQsKZdzW7fN98F\nEvVH\r\n=dVD/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0c57475703363064c9a337fcbf270128d57bf81c","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.82_1604914501019_0.5279994426376404","host":"s3://npm-registry-packages"}},"0.3.0-next.2":{"name":"gatsby-recipes","version":"0.3.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.0-next.2","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"00afeab3233349bef13be6cdfd033dd86cb11d70","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.0-next.2.tgz","fileCount":151,"integrity":"sha512-X8IlY/valRNKfgzlMUjdkqN+m5/eCuIELjj9nu092by0b7PAW+tbcY4EJsNIrRiIWwWnCqqTsdFDxYCQ5UgBjg==","signatures":[{"sig":"MEQCIFJwL0Xl4CZL3wVV4tvpwSvOYnJtLaXvtvj3dBvTpI5QAiAdy8fKC9YzkDMukQhR0T4qVdEJkU9HYzltvUyLUUsHhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqRNuCRA9TVsSAnZWagAAPs8QAIyBb6NImwvjPjXyetfC\nIpQu2YWuOSVt4XJITYqoxw9SNiCZCosXuhC/63zRX4frIDpieqJ7XlrnqrAa\nXKRzYhY+gW4fBOVQ7VBPP7vV+16qa/kxzmgEkhPYeujjX+aGa1JkAvI26MfD\nXGP0Eoqt5Sj3UXFxdRIkjsYvEIEKavb6wNmflqUp4USTgMeULHC8IaSozsCJ\nmPWRwdKO+O0XXTUTgs/lHjB+iC3PI0HnoJGJiixqBUV4Qt8QZQ9tHhgyN9Wq\nqpm9wMUZksVBNmGC7q+1Kh+HsxsN/2pEWrZBfcJ7vNldyfi/2GsI7TMn/28Y\nnrmG4ttyKg1PKfZov/BcoNHDAmu+OzeenrQvJ5SbtUgUGQwktXo1vJC/YN6R\nHwnxc7pe0c/1mKIDaz7VkE7eVtL1srq4lb1unTDfSunLpWE6GsE4+pgP6miW\n3MI9UuB0+I/s2RWXSASebxBPZZgqnUIuSh9GvJxSWvtLcasVts4TdWJvRINr\n7cAvlp4HmKvVpz76fiBbvPH2Wc5pJ31ECQpRAFroNV7sl/Rr0bpN32H+6bZb\nwt0ibpyLMawb7aurTMOUhzfMRhvr6SpZSRoDMhEMaw88lYpbBL3E0Q+0FQh5\nMeIS22dMbuuftjX+4Jyh9DA3WZX+O6Wby/Pi1Ru7KmsB9n59aXPVXjWnxyT8\nsBrl\r\n=7bhx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5bc1134c7d7f346bfdab0516e1d8660407dde63d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.0-next.2_1604916077638_0.2522246867354174","host":"s3://npm-registry-packages"}},"0.3.0-next.3":{"name":"gatsby-recipes","version":"0.3.0-next.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.0-next.3","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6dde73c8f2813a5547e6a52624018fc34931515b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.0-next.3.tgz","fileCount":151,"integrity":"sha512-vTYco+rek+b2DpeCcorNcc3FbLSkUtLA54XsgTp/v+0ivV4pauuylsV56YpqS0FfnU/Y5CnUYgCIQ8HT6gNkSg==","signatures":[{"sig":"MEUCIDQeD4X4EzYVz2ANCucC31twkOwFlAF35Os5DrQjj4wbAiEA17tsMa8OERtZ4SPHFob2GABFf1UbU/EIkWIDmDJ+Rz0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqsPBCRA9TVsSAnZWagAA/4oQAJn7wkOnRKMUZmpzE1KG\nFtjrUMSCh+iRHIK/7VaSnZBqkQhBQUTjE0QZTeVNI5ssBE2cx3y7y5L7Qldx\nQJvsFeg+KnoLG1AylNxtoKMxxotF0jrJ1x1ybniTp8CoSwX3asBZjW267KyW\nqvk+Ris8Ag6z8IFQtrlFVErrtL7MyJF1uz5B+1seIGYXLXJ3qGFV6vN0c4ft\n6rnhGYBiRTTGasCWtktv+rbESntASTDYJH1AX/LcO0EFBBQ6zI6LD4DlaVxC\nniLbxAtuwOTpcP+Yj9MhOJlHE3NBlorngt9FuNVZ6Df+XbLpg7TYDr0RHpRs\nxGkM2EX6AM1wsKsBZOyRNiuXFsxwLdEgUtoRfVUNkct7/rukJ0/K0cs4GvgC\nawoFXWfGAfDVsiZNaJmssIOPTaIb2eJc4s5dhg6NhvAnD+8BMc/8eWTOTcXU\nOTLFyelgFZ0E989/PJxrC815MbRobSsjnXAdiibMXiOHu7LWtwl1GZlWJdAg\nW/k7udUK+PH53cpUdz+6lhm5/vH5eI+bhW2XTHjlQD+IuEwru7M4eGDHcYiV\nprbiPcxUtR3eJcJxaVP5kNclq5MRZ2YhTphIzpITxZop1IrilCu2G1FTaENX\nZfV30S3dKoD7cKgT0lA9PaC5ZKKCFB2gDNmtJn7it8EMcjjo/11FMEkEVAdA\n5w/P\r\n=Jj7+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7337f8cca6afe5555deb1e766b81e79691f5333f","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.0-next.3_1605026753400_0.3577166288131497","host":"s3://npm-registry-packages"}},"0.4.0-next.0":{"name":"gatsby-recipes","version":"0.4.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-next.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3c977f4d8afd84fed0cba39738c62e4bd24e3369","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-next.0.tgz","fileCount":151,"integrity":"sha512-P5nlaGnBxmoX30cm/m68p4PDcjohDqCq5nwnA4i8oj/ifZbUDQhD6m7IJZC9LTtV7KKlm2sy/ur+HDPpat53aA==","signatures":[{"sig":"MEUCIQCM+roDO6eWwQCLYDa6IOp6fhJvgw0GJGvk95fUAWCI3AIgfung1C+en281UeGHeqfK8rY4kJxrmlSho2QkqO6eNbY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqtEzCRA9TVsSAnZWagAARtEP/2Q9ZK6st7cOv3rQYSqK\n09KIBlwsCZ14J7bdl+NU83khs+ExrRx10KdLl1fHJ8P7c0Ybdoz9uGc2Gsa0\nAfEbYydVYCEPtBtSXeHrJMnZvlTTFGga04P6f7rX4Z+7giM/adIJDhZDL7sm\ni76Pr45DOb9RMZwDIFDdkxzw37dkJL9ESALqz32jhLAERjK976lM9a7JJexm\nI8e2xmmT47Dhn5yorG5gbhEb3Q9iYh+T585zHLTNJohqfY2slZWifxZE5j49\nclkX0avfFTna1QGTGdWkcvjNCUAldYOfzWRIsDfWtAFkpkyqVhCncf8bv7Ku\nd2tPnqpaHOSTNDgcIjuDK98Ji0Og/lvTK6pT5+DaJ7RWajtwBm9FY7xk22rb\n0TaHe2g6ytUosp1vOle182Nm978ep0vbm4n7rsOECxcRqDxs1sVw7IT3TRxd\nGcFm6dLAtGPypk1qyLE28k0dhYPwEUKQsEOCRGHs8HelswpsKAWzgny2zEzC\n+PAlyDgunq7cUIv2v0n6/zDUnYifMBBK+qq2mcoA8vFIk8zi+fTqeXu0Eug3\ngC8UZrZq8tEB6BEhywv07bd8v0DwG3e5udlGw0g8viEuqcZMH0HukA3sVJgU\nWgaEG5rw+4eeEEAUbJEhxb7l4Osd8voQtTjd40/p37cd01M74OjB/KAOHUrr\nQorT\r\n=0LQy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3ed71f9051fbcc72cfb0ea4cff82a0d3734fa2a6","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.5.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-next.0_1605030195119_0.3738271304409524","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.101":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.101","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.101","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c0448898dcad864413de9d86a67bd675b56a7d9e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.101.tgz","fileCount":151,"integrity":"sha512-wsurtsLC21wiqPvpSQbM3c7ccCG0Gtb+qTVn7dYl8zj+f4tkL34AKDGLPCMs/0shXzO2z0WBk33SKx6yZI4/sw==","signatures":[{"sig":"MEUCIQDlI2oW1idXu3/Ykowm7B5xNEv/1iAs9GIPK+nZk4onpwIgW1ORR380mKHFIiJFIIV9zrX8sjZ5D0kZIsg8YwPgmzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5363590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrTUrCRA9TVsSAnZWagAAIIIP/0OG2kyWOmK+UkCkNkmD\nkiLn29lD4ukCORSQFkx9wOK1QyT0Oi9LcJBa3oOZeWXEhn1+504TtAJTvZey\nXX8uE0pBLBGw/OvYTKvXk2ePgGlhdDxsmFn/7O+0G1dQBjwqnCcKuShubTlU\nHJstGGvml9U5TfWRazUDGkuOcF+rUktA0eVECb8Z1lDdK6kCguTyHbteQcUs\nUHweKNoKX3MJ8VFMwnLnjtwppeYLl/OF1jawfW15ujZ6QDFfuzCzGRraGZpu\nC2Mazo4L5gmRim6SPX/qM2N+ca/AZfPo8ZAkVHNOaepDB7N44CS3Zz3yXp5e\nYtDAqnZ61DR1QsQHvwto7L1yhozryEZFgspl/u7MKfXI3oa1QYFnyp5AdIBh\nV/O7LVeIYfMHjxrr5QSaAXeywIKk6C4knP4oVvq2EfItQfFDuMyovWXt8D6q\nwgO6DmNluhYEIl78C11sLABFrc/KeGWuaviBFDBGO/nGktlgT7DobdY5xppD\nzQTgCOJ9Fm+6+64x2sCvO2LnX87xp/znlqYJ+tJhSqTCcYbx+hWrmJ9lO8Us\ncd/kBvOtXiuZgvP1XuTgL6cK3BUIEjtqSeAefDWHIbTPJX76y/5IoDvj7jSW\nKkESCEgohSk0WpFt7oL8b2aayqR3qNAUClQHhQo7wRQFV7l+UCb6N47MsA0I\nxzJR\r\n=sNUV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"240a33fdac6bff18305a2ba957f6865c7c13d622","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.101_1605186858441_0.28578757522087117","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.102":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.102","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.102","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"26234652ccdf6acedc41a61f78e0c9891b0826be","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.102.tgz","fileCount":151,"integrity":"sha512-EF47BCu+NbmL2s2K1ZWIbqWWkK+raAesglpB3nth2XtZRz/B/+PCVrCNh2ryzR6p9m/F06kGH/eG5h5zlTV6qg==","signatures":[{"sig":"MEYCIQCM53i9j6/mt1fM89al/IauqvI9qYmy0eOmT2hYtvGrpgIhANTrYK7qSwzA3im5BwkKALJLF891n8MbB+TZ1/RfVEsY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5363590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrTpwCRA9TVsSAnZWagAA/kAP/02cWzXGjPI1703admR/\nTMDQ8wopda6+U/+sxathHmz6HBh0Xa6uctxMi+Z153RKeCepsNHXGd4xqS8t\nLaTx8zAIs6lUGBE09Vg8K7NQtpjSkWKo8OFQGrgNJRAp2sq56P/J25GLmA2P\n0uPf+uJK6Pcz/WohOlppqSzEt78nvrm6tR1CbnBgehJli0rY2E0Zliul6P9J\nMMeIyMj8VujIxafjdz6K0xlzm5fqRZmRQhHD4jyzxPrArXAFaF0l7Vq9D6aJ\nzIjAajK8E2R5gvLuAxsSI8f0TWqW7w3QD15P/W4P7qSBdVGOej/w88aBwe7r\nTxsRtcYeHEDbi2d0wRzZe5LNTnvvZfialitrAA61i5Y8TjTSqnp3i2NE/l2W\nAzRS0eDFn2k2byNdQMJSJWaMaanGB5jjZRzZSdiLM9UCnHdPqGel4UW7I7kW\nVT//Db13kGUURlnitKLvahhyb/auFeee0mQguAcHiV8MoeKbh+KmOsJtEPos\n/bhlL5srMEI+RhkVP3UIaJpLmuPzJZupeSN37qo9vR5Pg2ksO8Yx8uvfA6ne\nGbMebIAS0CX3ofVxJEOwzH3lbdld+naj8l4KBnXN0llBbiItyoNscRRwAOY7\nxi9BRtDuFc9mtgdHVAM9L2Rwv8ez4BSJVD4/QixORIU3qK7iEZ5h+zXZ2mgH\nC8Uu\r\n=dmTU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e7e64cb69300c7c797f2e6c3302b4b6a4628a198","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.102_1605188207699_0.6977828654943736","host":"s3://npm-registry-packages"}},"0.2.35-create-gatsby.104":{"name":"gatsby-recipes","version":"0.2.35-create-gatsby.104","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.35-create-gatsby.104","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d979cdf27ca0489280ca75d64d367adc0f78c8dd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.35-create-gatsby.104.tgz","fileCount":151,"integrity":"sha512-pAIH7tYnIwM91XLScKhd5+28RXhjH7YwohKtNjYrLIQysUVtrtuLfOcLEkpZX7B2eOvtopTFUyAFHaIitRez2w==","signatures":[{"sig":"MEYCIQDN5tZ/dW4nXdPkKY4Y8ZXKuhzzFYGhf5fLD8X5tSKfnQIhAKu6yA+X5hohNVAUZR36C7Q2vSRsRBd5hMPrjYFabn/u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5363590,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrVVSCRA9TVsSAnZWagAAoO0P/jjxpdCiwe0K7wPbUaW/\nof3OWd4LkWsGWTFPIeEU61A0OVCiPpnUBDEKAQ7zfexdLSYFSNb4bquQOdfH\n0Y9XPgHqCCFTIddgeqYEH21dygDnHTDEMSE7aumz1dIX/TKML7WR/hrSXLQA\n91E9qld1oEwVNRqkYFy64ogjDiVLO9VA+HkeSEGwc8W/I75tcIhcKy8kwGTe\nBt5DlEOQM/aq8xjpxLNTU2ITz/DeM7hBHz5Y6f+zOgW/4C2lQrfYa5AaTHnV\ngiAqkv5g3dji2R2FtwzSgDYgEh8uiBtNzeT7N9cSGC4ZkTtoULVdKFSHPnXu\nv3WcLxL8UKIDrE6/LgDgQ7bIhXAofFetzo+cPa9KeESY+nniCkb+fDz/blPo\nhbR8F744qDeVwB2vEqKhRMhm4nCCJV3rmqBpKYU3h0LfK6cVS0nmVhu8btiz\nL1PsYXjmu/IDg55t9HjOlIOPfYJrdH74W1FUqVfg/0BCpC57jVKRxWjhqanO\n2+wpQ+DAzNWbu2Leq6zuLn9vpMwQVLFj4fdF1F7U43iFr0pyKqGjCfj5LXO6\nNSjDMKdZ7PJ+AG8TRWs1SnJxFqEgxOdqY5d+LzeYETRTxZ8nTNUjRjG7r/rv\ncFpt/KGnf38JcwmUW1I81e8HH6xMEmjvBGuFZQuQaUMJ4TNa2MjqB1B4NRGi\nVtO7\r\n=F2EP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0e3941cc0b20c8abddd2696c936ad2cb64f9a70a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.35-create-gatsby.104_1605195090064_0.04629912836576078","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"gatsby-recipes","version":"0.3.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b29246b78c279293a331d454bd20eba027b4235a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.0.tgz","fileCount":151,"integrity":"sha512-lrLk7+StlNF51wmRA/w0nuHvfIuSN0/PK2DXjThn3dMpYebHzo4v4YV3PjjDtb2c0HEnD+d5e9IyyVcxjVXmqg==","signatures":[{"sig":"MEUCIQDvzufYZDev6fU23wnZW0pYHh9ExmeB3lv9ANUxw55FuAIgdEchpTMRpHI+ln3CWwGQsf7RLTTqwBPTFfbyetnWl6o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrW1MCRA9TVsSAnZWagAAPV0P/iT5wMU40YKKkpNpMa9J\nAuPHMO2yufql1ix1+sZ2NHSDM1optFauVHPgt6FuKefilaTApRq1iEIJlSPh\nhnvg71LlZz8yIZOTVpwXFz59sG04OaVRFdiEY/NxVPt8S0Sqmj+kUwVxxCgz\njSyWuHIYvyV0pZyVznzWU8tx99AqHzCALmDmsiLBWVku8h7dCV3j19G5dRxO\n8TTp9pFBnGazeBdjdFHKcBT/SlAjeJVk95fXqNL5xG7aeH7ZcUWpsAUfKxTs\n2gBuUuvkyVkH3Rdn3U4c+J7+ypI/OSua0BVg6U259opgqw7cPuK9I0HowJ7y\n4b5j/3QiTd45ZbfuB1YGj38G5Z3KTJOk6fh4PmGV9SKLQ444wjmurI2E+zE5\nMPCTqOiBVzSPLkFaxQ7zY98JWZWhXemDwGZ+5wz9T8BnYqcMbzyiA0iw914Z\ne6B3AzbMoDN2nHxxNgcR1bikJb6KDf5Womc2+EvFF7T029y75gePRkU5kBlI\n2yEvJRtoMPuxCqTFwdJ32IRMnxLsztbRlGuR4KRC6/daseIOdEZmNsIYV4St\nOkP9hFkNVCdU0llQ3dPujT5ThKBOLr/Dou1hwhn7ASB0fLpTiNUJepChJHp2\nR1vRsxfa4ex67D62LDbjIcalyBUYUCk4+Q6uqroV1y7rGosstDYQo9mBfrGM\nVIV+\r\n=Wlrd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"135e554aa9e8f10a282983eca65c29ffae738339","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.0_1605201227515_0.526348672999067","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"gatsby-recipes","version":"0.3.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.3.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6e3aaa9fcb0cfc735b069367963ddca587163692","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.3.1.tgz","fileCount":151,"integrity":"sha512-006frKSNhL0Wuc0fNN31YDOZBUkRn5Vslsthz2Fw+P/ydM/WmWplhOrESpmAi2i5GQkePUmJSQ7p+/A51GU3DA==","signatures":[{"sig":"MEUCIHr+qBx1ui3sgzPULe5RlI9N9tKS+dwYMnC6aCLPnw/GAiEAzfKF7Db7IwDK6RnK3aaFKkn78/tgd3n/HOQtjlWTjtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5361939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrsMqCRA9TVsSAnZWagAATHUP+wauWbzLRqOdxClNafM3\n4bmS48HdnJBsLDjKxvr4XX3i3kmhQwbkfQl8r89aDuYuh1o6UcLtNIV89r3K\nskfILSLPUNNZlYUtFU24y0e4sOcKywXcGXQ9Kjh6sg9EYbkYdou3icsiZoSX\nhjbeMwd38bp0sJwpYvKrTfwZvEEsr96FDKu20NTmuzGakf0uqXQPOw3/Dzq/\nhzPmZLCKVdT/TlGICudIpKntAgItCGASC+8mEt6qHjAGInnkpkS6AAQKmwKx\nX/wRMPqP3wLVg8wBDGhYr6H4LREW5+pUbdCNoMoEO0/f3zG5XqXHCSjmpfr0\nCxXJDMHwyeDvbEV42Vx8ZuOqG39mX+yVUurQvWxjqNvdRD1CSs6roSivyqUW\ns0iOra691r+octAH5pXMycTEu+RjRwN7GwmHyDIyK27nJ3B2cj9nJjBybZIN\nwNFn/CQlZmj46abBxnqtLCRf8IptR4jsA5/afg5OlDvQ26KROC5Hl6ycdQ9T\nQeOmYT/8pq1Nxjeduba/kL1UD/5R/obGolEQoiQ6FVeXpY/5rT9Egh+qBwhI\nrmP1X9k1kvuKcW/U9SxjwejTt6EXxEgzVpHTmjRGRlsfgIhanwoEf6lGG47g\nptpSyqJMUwdJRzP3N+kHfdnF/9nDPxKOYqIeNskJ7mNjuT5yKCxgwV5wnJa8\nh/a+\r\n=ONbQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f039123a86ab88f2087e02d776c6cbb960241493","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.4.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.4.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.3.1_1605288745640_0.8533899570264856","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test.524":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test.524","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test.524","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2c90d1a69ab76a1d217765913b8f4036c5eb6dfc","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test.524.tgz","fileCount":153,"integrity":"sha512-qV1UggjgFrFEmu0OLtRugskU3a0tp//eIR0gH30hm6znfixx7QZ3jGgZM1OPZyCIy2ZcwnDssiBCei0g5Zh8XA==","signatures":[{"sig":"MEQCIB1DCpvzxQKaQdY/srMX7rH6Vw69rIkTxTBu1UDn5S4xAiALFCQdt6jNaKFjNRzHMfbPp21PiVak4lXBvsSeW0Wc2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsOVICRA9TVsSAnZWagAAyHEP/j/6lqNddxpXdh24Y9jy\ny061ceV6ImIIVwhNgo9/Le08Zn3EA3DoaoGrxaE+43jsqqHj5PmaWon/i1Uz\nbkWKH+334HJsJ+wegB9kmfPnRGdwwYuMavYKZzxd0tL/wmiPNvOox21su7Zy\nvWIIcnlQk1Z7C7d7vnCmVdN5B7WUWpod6WUUM9mJDmKj+7qsghAwr/dpC4LW\nT5YGKb523BXXOC5dnQstKfer7PuTyzZgL0wgmjGMJYWAk3YOi+Ty+DgFthia\n58eldUBy/MDsUPziv/CcCbRAFfCoirmgnjsN5R4ETsE9HU9NIFux43jrYyDt\nqt2oHWaaUUvIQrBysEy9vgN/s5H6EcCvOv+EfDEhoPeGIzgaGrLEYVe3qjta\n01BlpsMXVb6zzG4ZUnnVUuXrXeDjH+mcYbX6r0Ka4GwZRNZgqJBOoWy9QAJM\nDrB8xwRAifvagaBYNYvYzEO/x82AochkdfMoGitqqwckH0TLRtOfl5zEagdz\n0I0QcRohvJz59NZMHBlAuQxeMEatxhyaESLgdLwDIJkthfpRmovVWsLE7PvX\nHP4f+Qs2uUpT5ZbPGK1fIL0QDtnkMjgHCbHT+c4l2suR8CJKY6i3PMEMxvCh\nps4JK1jVJK8O4TCLMYhc+tK9gIlSqSzZqw53Q1LxXW8zccBy/0tp3aYkV4af\n5zDC\r\n=S9Tp\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"6b45777ea743109b14570bd110236442db954a4c","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test.524+6b45777ea7","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test.524_1605428551500_0.8766984779875542","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test.525":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test.525","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test.525","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"099343e32c1c349220b8c298be400b96c1412ff9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test.525.tgz","fileCount":153,"integrity":"sha512-NoA6fT3SnXeqDhkUdOzh3LaiOag2GS19JqUnnZqmsT43DNPmU9suYbZdebsGABewSuwEWIc/JmHqXCpTldU4Qw==","signatures":[{"sig":"MEUCIQDJe1Y1iK6sCUGpX1G38V2h6qjLwUP1fdnA4teeRNnoEgIgRnCSFUjCmYA52BEmHMIBFMYy6HasyMF/UPkgDdPzqmU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsOdRCRA9TVsSAnZWagAAJYQP/3h25k4gHlHkn5MQMnxO\nAHPuHwUaDBXCLzgr5+mBOaxtstmqua3pTGd3OaWXB+NRQRK14vBmbv/XE40I\nRgWCpXOlgnDecp+k1etdWwL/6kPBNp7HE2GysYLp3vBiVb9ngVx1LwH06AHq\nB7mAUQxgLAqzM7+mMqR3ih6w3ZAvjTg4M2fVQnoKmFZvKxYqR7M3QdkwzY4B\nfgSSybaCBZrFMiErpgpk7gS0NlwptV+IwKewBfj/eZHc5ocUeUrref1oPOM6\n44pRuLYTV+kYXbot0+uRJJrs1o1JTRFEzETPhDwIOld16Q5kDs/gqwwMlh9N\nRqgn2GY18k1URQj44VMYqUccdEjN21ePGCNVb2rtCJpezW8ifpXss7K/oItK\nfl3Yy8eMkk9QUVb1j0HgBgkd0MRHkaB7jLF9pg6HmwyYrbcffSsIbpDJW/dg\nIxigrCSsbApD/707y7diXW1zpyCblX2Et8lmU4erGBds+E8v6nk3+bjOnVNC\nB6v4rlrxdPhIrQx+IIEaF2ZevjO0v6LP8abyd9Uh5LLSkwWAYZq6obasXLkz\nszl/0dNbUpt/T7zALGsdnMloJQkHUCQ+Yh24WYdSqZFs/tKHP0ki6bnt+7f3\nLIPi6SZAdduw/0eX1661MXRdpX8bBX8JNexc3N+tz/GXdmngAtXZxA9eN4rU\njdkX\r\n=ehvR\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"efb004d99de258a62700bd4939fa306ecac21757","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test.525+efb004d99d","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test.525_1605429073363_0.9855075071014539","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test.527":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test.527","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test.527","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"78f8fa92d0c920a539e0fe82d8cea5f2fa7efaa9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test.527.tgz","fileCount":153,"integrity":"sha512-bAca+Ax+WhCu3pmNiUVmDq4GDijl+AbjIEaouOBWE8GYqT1ttn83IpDbzO/FmFHj5oTCahkQ1qjA7BzzPLueQA==","signatures":[{"sig":"MEUCIHjhKDWIIQfqTJ1wWvtq51o0kzaSxwrBqnSMMwld+laHAiEA/l2RSzaMjANnuxMJuMrmG0603RSPbuaQyC7iSzEAOwo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsOhzCRA9TVsSAnZWagAAiJoP/3OpsP7WTx+x2SRgmLbI\nt2ZB58dl47CTQcEKCaSL7bFOa4QQt3VX5cLh3h4KNpaAvMQnR48lFanrGwfZ\nFg4ZWzTCNEQFEHE9y0yCqP9HP4dK7D/ZjXPbpLu5KVv9bk3mDpoqov2Wmi7p\nvnQigRS0Qjlct5W/ZbZYQpMpUFy82zRrTZLLweO6TSu/Bl9R/Uaj/Sppn3vc\nS2z6JPQshgRMpLUvrwyN2EHGDcoy2ru+ooStTPHkNQNg+YS81FBjT63NY7Js\njWwYWufR72vCUwg0ytBHz4E+jV/QRMfusn34Fi3SyjSrEOcmqAAlr4xhrxyL\n6+TU3vSADbTa1l/ZPCdvj9ILUMnA0wsgxerCqbIAw2H2ZgTBOPvcKYCfUG6I\nBVDokU9MZiJAES1LlKjcB/Wj4aq5+HyBnSEDDL04J2c7bmMYFWYFBDHZm8md\nB3F/9D9DO+A9sXtfag6Kf3dklhsIf+lpb5DcSPF0z9tefAtc9IuSuEcA+skZ\nZ8HASLo0ADnkCKFJBLn5jHyDCGRxP+NVFT3iOfZBuNb1lq772E3QHaiqq2hm\nbBDTPjclDaPNBU2VuMDhMMFNvz0WZvM0s2aGC+riml9uCsY0Dpfd5jDY4Y/C\nNIWB9MAsk8Rfkq4pdC3S0bkaA5BXMh+zNNRX+6FPtmEfnkRUaGY3/2+KipKD\nMId3\r\n=ceqc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0977bdbd120129bd354776d9516d3cd3cf646549","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test.527+0977bdbd12","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test.527_1605429363024_0.26329012315926636","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test2.524":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test2.524","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test2.524","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"43c89a27c501d7a6bc4ea374630df313c35d4916","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test2.524.tgz","fileCount":153,"integrity":"sha512-YIH7SM7MX/hxdkOhEXFJ2IFlBdXuyB2Igga2L729itd+XLrkuLIlF37AcieBtJV1l4dxP41m0Wb7lq7I04/3EQ==","signatures":[{"sig":"MEYCIQDHfGmp9fIzxJTeOOoTAyJLyZc9ZcPaOVGfuES9JT2aAQIhALHCRLu2WmfBF3NVY2eH8WNCrFRqtIAH1jJ7iIWt5DLF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsOxXCRA9TVsSAnZWagAAqpoP/0dauzdACtFLhigizby2\nKzX3iv9+rOxpJjv1BN7s8z71VKvn2frvjMeOCU0yOogL6IBdfTRpTzTCPQaH\nvlwoXvW1b5v5ihLSnq5aaKNd01rHjFBjqs+/dOF+dPsTiPAW6rcfz6LbmCvC\nyYsIJhWzeUKXJbUjCeYuUcTgn1mag3TvWRn3zXi1A2zH/Xjgtn67++qtmM+d\n9orw7Hu+q9dvYciKmPu92eDGu+CHITGUi0O5tpTtYUCgTp/Ew3qLxMOJoVdg\nYDpriNHr1ZwYZUNFqfNBwf7CpWdwA9GXaQIoiyFxsvd5rWef5UQVqmEj4VEo\nKwNicOkAi8UlEoOV1qRm4efTopHQq017WptaSpb7ldvflYQ1CLSEHWXKJt8/\nlaTNAd4AAtqHkd8iGCxiZBCE/7S46HRGEHg2e/dNNTPP/SrxEjCVG8QFAD1B\naE4iF/a2WYfOVxi1HFlDRYATwgc3es+Kl7DvO+7dxmpWezXzHwOe1NHlgbqH\nCrZHOgcMevEe34/lapeYOtrVOeEu5wDhRiXDSW4dcS/ajJTfPnOUsPYumPsF\nsbcIJ3vPynD3zOr0YLM6Cv/de65wSs24KfwaJdw//ZMA6KiBNpgf37+Mn2Bl\n0Frl96L/gMzgOi8iTLm2YtoRJqkSz7SzbhWX4OleGnD0fqT/J/YfkbojZqLf\nE/PH\r\n=JHkE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"559503d9709d051258e9f3c32cbdc7c08bdbbedd","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test2.524+559503d970","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test2.524_1605430359125_0.3607140033119438","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test2.525":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test2.525","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test2.525","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d63a1ca9248958fd74604928b0218f641899585a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test2.525.tgz","fileCount":153,"integrity":"sha512-S8VpU17OerSUA3MTQxZEXiyo8/A4Pqo2ogHCq88XjGzmKr5bN+zh5xy1tygxotAtT2ptvbyzodvhfW70uejU6g==","signatures":[{"sig":"MEUCIAQweoI1k8c0dGbBqajE5OBXWH80nAl23waEJ4MvqRrrAiEAi26rR5E2OfsP6HDUgbDbjJ4KJZcTOVx9B/m8+m58oOY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsO49CRA9TVsSAnZWagAAy0gP/3O5tJygvogXmnYcAuZS\nSuRaroACzTRgm5FqH+bq3VAPFGpm19ra1O6IMn3JRsDGqAHF/5X5WIfRKtC6\nzOPSgN/m9TFLiHHIFKWzRD0StZUxY92vE6R5aZibaAdPfOlcEyXsOQUKoWo3\nlyznF9T2ctciNeh2mPAV7F2RVMdr1Q7qQzFVvWltbgh04EqbfXPEszsp4/Mk\nKR4Pt6P6BBUukc9sk3F+ZLDuq/hIbmo6whKEsiDQ3AaYe5DIzyJDcdtRWEep\n0GJNTOeFLCZefhVliyLLvXFGTYNKiHWDgCn+u9BS6ktHmN+Mww3ebnJ2T9Zm\nUBh1vexOH6TszGb3wboaDIe9IcLEcsusxFUpRJizoH3H5vyn2r9Vice3yqO5\nyES/Jel9Pcfw5r1NmoLOEDuAlqSFF0xGAGnKWAyIbqZN+q8N+nz5co24mWxC\nkPq8pdK3+wcV1qut5uG8fbgR8TKgFQDLj2e3VjaH7M2DWtPDTWUwO/1rRIIr\n8rLz4caI0O1eWiCifI9AlWldJrjWJ0BJfYRsuokfwTIDDYTWDgDtsWza44FC\nz8vABYul2HnfccwSp2PZW4YQdYTglmZ1DC5+40q4G20Fn3iUf+cmcBD2v4xU\nCvZs2cWuI8XiBo8KzhuxQ7vfwy3cJYIWGx5nyF3xdYaB3K9EBg/Fkmdhgi+i\n71EK\r\n=a3gn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8e2877866e4a53117fc9c96c5908d29c6d99dc52","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test2.525+8e2877866e","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test2.525_1605430845236_0.8527369653039496","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test2.526":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test2.526","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test2.526","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ed089eb7f5b4075c1d5469fe622565e3f4b208bd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test2.526.tgz","fileCount":153,"integrity":"sha512-4Vc/2l8dazW8aCdYGK1Qqcp+Dy9/Mi2+54r4KhVeJMD6HBV6Ng+XEA5YeLCktzv1CW3xkPEnOoZFabUcpKIdhA==","signatures":[{"sig":"MEUCIHrPWR8M2zzDsymzzfe0fzSb+Ia76u265PLSfwXaZAWZAiEA2nDVxg9IuKIWU6saSeNszWusK4ee3HaQpb8Baw21w6E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsPE7CRA9TVsSAnZWagAAy2EQAIzwJcGAjQgoeqt9jBmi\nd/u84UZ+FZFy8kLsqY8XJ6gxphJNvCFgFNoxkTOC4k/ODOExkwxOg7AeiZc5\nY8Qmz78eIDZamUqaFYcT9wuZ5KJTxwe1An723/TZ2Q5ztaosG7AKtqsMMjA5\n+cdReBUon2kg4jB/3kIPRvqTF0xImITiqYW1GwNnJ2tPslEwZ2mIkm43oB21\nOn3AZQe+HUpK1fAQfWALcMVKBdHDDfaRVUdj4/vqtMfl/d0HcYmCwb8zjt/Q\nyg1/Zeyt+p5IsSoXEaaEUJaEIqvb307wyTKL+IHAMkIySWCKw14dEmRYYO8c\navC3g04loaCUO80+vdP/6+COaVVjsi1WWulEjhlZHsrsZ8I5F8xGsJRqatA8\nzlBRo7jWHR+MpDe2QAjdukc3cOh41B4LBXIQ9WLn2UPrqFd2qJyG8uNESbJi\na4SzxYCJgzHxrvv08zCKwX3x6cIuG0FD+4Yox2q9Lcrw3Qa4yAPpXLbMGIQU\nnGg9OaByTj/4eHo+P26+pYN7TBAAY6K2UJFPgguIYC8gYhRQ5h6bHg7RKdJV\nclwa6S3rEWbQypWhwVj6kEdTZ+Lrtpc+6fxWx0R5shoJTi+VE6lJjeQZW6O6\nb6zDV7NEbreOmVphQ9GAHamt7oOjgAr54urUmGCECN6zGq2Z5E66Ze+p85Yf\nGvXu\r\n=a7Dv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c61c129097a5f04a902639fc4eb3cbbe77980a26","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test2.526+c61c129097","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test2.526_1605431610999_0.7144458397069899","host":"s3://npm-registry-packages"}},"0.2.28-telemetry-test.523":{"name":"gatsby-recipes","version":"0.2.28-telemetry-test.523","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.2.28-telemetry-test.523","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e94bcd71c10c72c4dcb8a51ca99e06f44d228408","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.2.28-telemetry-test.523.tgz","fileCount":153,"integrity":"sha512-S7AfosEXc8fqQr6hTcbgmVmqwH+vDbrWD58N/a4T98rCFZNA6VQkwPWBXelozly2qT86jOsPtcCdUFRR5+ctDQ==","signatures":[{"sig":"MEUCIQCTLVbSEkTYDMSMoO2x/KoKuEAEsXcUkJUHYpQivjwbfgIgLBEBJdwvTsQx6hTG0F2o80pqVuPoZzU+LyClvo16p4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5368800,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsRgqCRA9TVsSAnZWagAAFR4P/0SxkWszqvTnMAh1p97w\nxN8M5WNCrgQMVHdWmRNau6sQWswTbcbHlpbB5muhYBtk2N3aRtsBC4BrqDVT\nO0yD/h7OzStGcxjnZhAh1Bk2NDqr/H7wFHwlUZFDjmvkZLakXTJ93/0WUVbt\nzKWo/79lYXjjJvn/EdG0SukFhNabrMLDrW5H0M2pBeF1u7afO0MuxLGw+og3\nHVFngjyElMbYsMvgs6DYXkDwpkt7Y+2fnbhgL/m4RlERHn6S52h1TL9NXZPw\nNrbHm42jQlRxMa8ioA8rERzfuYvHDG9j1Pck+Xq/7zwVNAIRvqR7z2uDAilR\nblvUS8yGgkNet6EmVkgrT22BOyVrNs9EwyGdu9Xu8iGn6zT8R1ndmqpmwUKm\n2nW9BUiXCFqRwwkOO5YIJk6BmiX6jkb9vklehKxYqJfIXiVVgMgjKNeMsRZd\nb8KF5sMDm/y0lcPfC/2HYCez8D371uvIR7uvb8tEgKkkATTs4JofAHwkPJsq\n6KdS+pFiold0SDn6tpAGNxOLVlkiWdDZ2JPJHl90OW9kB8oI3mHTx02loHGx\n5t8KVLco8gWxZdnCWfKv+8AuaTwNvVoa+layL1OCu2ubaIqfa7Gm3idKUCep\nvOttdomcYLqsv8tvmJeDQYaXDEyB1tRzlCnuP4Hr8hMd0ssiiZQB/kPQSvhc\nnaP+\r\n=wqNr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"061bd7f1b14bfdf6a384a6cf7ce14b3e78217969","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"1.3.36-telemetry-test.523+061bd7f1b1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.2.28-telemetry-test.523_1605441577768_0.8497947184833883","host":"s3://npm-registry-packages"}},"0.4.0-next.1":{"name":"gatsby-recipes","version":"0.4.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-next.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c20eb08ea47ab2a4b4c8204ea8c6ce7895de9574","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-next.1.tgz","fileCount":154,"integrity":"sha512-KB21s6C4+J/pFbthhNddrO3EO01xZVcGeaShdbVezxsi/sNrxe58p4i3O23fAHTLcVY9AlAcirI0m9eWiIbx4Q==","signatures":[{"sig":"MEQCIFa8yr1o/pQSNKFHTILpAiv/VbnguWJPdaV+6/34+sq0AiAkau1FiJWtAj1q6wMjIQpTokLp+TBvryrl0N/yXfq0RQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5370214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsfUdCRA9TVsSAnZWagAA8I0QAKHShxuarkmC39GdeTrr\nkCUtIBMFSAF9VZB9rPmTEFOJB57TJcNs3Zljh9uJ0PUmUoMOqr+XXLB04ef7\nELbzlKVBrwVWJOn2X5tFA+0IlJBClIbvRu5c8XzBebndRwIVNZsAtWM6G0mG\nOleiy8ckNcUJPvQEbdNDfoifmGOT7/GiWcJdP5qH/Obz3r1BAqRB0vn2ck+X\nbpV2FVo6dp6Oh5Gx4EsDc+gxQSeOsAHkoWgCxn/y13JVgsYSXi8khhCPk8w8\n/UkWQq4zpf6De0mltid3z9JszlTUAQNN1BBvZd79V8cYkPCe7ZJ6Qutebpy4\n0+9/KGIgab4FfREEjkLJ6/8+7hc8Vaw9elc9K33In7+CjjDe4zB9tn0gT/Ef\n1E06frqG9r9zfqiqG2hDqB3E9vCSCM6lz03Uj5faBa/ppokIsahgLgngxTlD\nFC/1f5fbTIeWLR9loZDFPzcYARErCQhG5p7fEk703vxvggIed94rkL0EkIbl\nSbbJKOiRHQgy0iL6PiVc6fYPqTT5hSorICXA7QAV2rI/0YModNSsfDTCh3R8\neW4l5LjYH+uCnkPCWtrRarUjzMP5ysSbl72sr0LESMzfpBFIYbrMOy1UuioW\np8vCbH36qfXnJNQA9CIxw13y9LxoeSE60VAKDAO2e9da3T3OhJa6hJeVQvOE\nRyW4\r\n=fW2q\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ba5abc88e0f5b2fa2c88f1c9a10dea8fa44334bd","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.11.6","detect-port":"^1.3.0","@babel/types":"^7.11.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.11.6","gatsby-telemetry":"^1.5.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.11.6","gatsby-core-utils":"^1.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.10.4","@babel/plugin-proposal-optional-chaining":"^7.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.11.6","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.11.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-next.1_1605498141229_0.6005282041559112","host":"s3://npm-registry-packages"}},"0.5.0-next.0":{"name":"gatsby-recipes","version":"0.5.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.5.0-next.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"455f40488fba4693096864b400af66818faf8176","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.5.0-next.0.tgz","fileCount":153,"integrity":"sha512-/yJYWFxoyi3CPjsRRNyc5cTaNZ7GJwnOhoQX4Yqn/6DUUAl5M51ha6euXNhx/h0wtr5LA15GTzl1X4wwypAyTQ==","signatures":[{"sig":"MEYCIQCVcGASr/K49Ewb5geZCo0bxO4JKt4HmDqFfzqMJjjedwIhAIfi7gKf5HeXY4zoAd6hvPIQ6j+ddcnxf0/A1fK5BhSm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5377937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftLyvCRA9TVsSAnZWagAAHvkP/1K33vXiUnmR3CpLzRW/\nOZHE2JNIaT8jWSD8qT7Q5C+TZcZw6iSg31gKHrNvE8UXsk3EPS55R20139Pe\n7+iyHqF6LScMJqQ9FfsGD3hNBzHBmKXa0LTxDGbl0JQAL7dIHoJ4p454/nsm\n3C807h6Q+ugMa5uL9/cci/o1+XZaSkV8EsrHS05yVa71/KjNDuPVW2RXYCkp\nl5jhU41ag9+3iYOiYZ9qESjkB76/l6EHa8Qdt7dFYFlkzdW/4h2aPycOPY+Z\n38SsZC4XzabYEUq0H0kUJ3Fz2o5EK5sFWn0U+HmrHL5bhEzEpAO0Nh9uNFBY\n1L5/upcCmH3U+MNI+wdc1y9QPjawE8IjY77BSEoTmrPwADeRWRj0F5aMUJRY\nZtQZDaTncP8D/pMRjuIzE+/gnhkp32uaP31OEylpjVrMMipM9LZXUnY5dlAH\n/WwgHFMqmPEep20wP162NkOFdl0Op1dOTC0fKJnRfhQNOO0X2vstXHkSk6Aa\nNZsG9sY+fhnEl9ejIvfYe8OuI9DRxNSL7SYnFkGE2fEPl7cSR+N9JdgXIncx\nUMavYPUpEKBcwPKmmoJLfsGU3an+xSBDk+ZAjLGeSeivKhtP90Gto7mTOwb+\nQZFXBcki27rJE4niYR13x33pYoCVucPUkPoSZB8tb17sy4XvQwUMdWBTQkik\ngEnj\r\n=sV+d\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"fe8346543838a1eeffd1bb9b1b278e99135a34d1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.6.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.6.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.5.0-next.0_1605680303301_0.6042837071860083","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"gatsby-recipes","version":"0.4.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d2cf1b4df275c3139aef327f87352750bf27958d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0.tgz","fileCount":153,"integrity":"sha512-gjbqj0B2WuQ7QX035GKE25MWoB9SEIelGI2V42oDgYOjmG4c2zvNqhbUnDC6meZBxV51DuyZx7jlf5hHfbKLuQ==","signatures":[{"sig":"MEUCIFsgx3JcqxgpK8kIlzW7V/K6hTYYuCN2V7bMhOhu9A7AAiEAmZv94DWpl8F/v/R1unfmjROZLBmYyI+zMheDrHkzydA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5377902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftscjCRA9TVsSAnZWagAAgoEP+gILRk2Q/CBCiCsiUu5T\n5nUzQTnBaXEfyjAUI97cA2ASUqkjVR5v6jdM/ZZrei2sxbaiLjfpaiiIm4GO\n4Sd3aMReoCpAKKB4kQFgUOVI4cXR2SIiSAROXRnUABWKBvq293nD/53XGTIM\nBvExP9dXFPPPVmMq/QbtvMZXr+CnoLXOsTvnsWvuMTU5o0jmul0pbevsRmy+\n3nwFeHusxKAtJ7u/1ZmKQqDfWicVieaY30zK/B+WDH9W7LZbbau4soqVOr2T\n1Eh5O1G4Gw3EB8wI1cO8IpBGhwbR4t2yL+WfyGnaEJBX/yOBPPQZvRx+14Uf\nkCv+4RrLejDSnn+iOR7TYq1aqinGXml0J9RvIJofff9zLwoa8l9ZJ8z8wx3h\ndmuAILcRomfBQU0RwUM6+v/rlsZrrHcjL4LXVSN67vL9CJh3aTe3izSODIwT\n5MbysTg4vQJbE2R3oMUKaHRMsphBs2eoQCkKI9UteAnmu97GqIRd9YZxy7Ke\nKLL61J9JvyYOL6X2ElB1c8ke/PEVB6Sl12sISkz7eRDrKdXjjyn6Labw0u9m\nmV+AmLO8iaO3TmJZ9FR+OH/GxiDI9WKqOS0en64i0UG2y1tedA7pwulG7031\n0uopNxN24WPxpWWJyvdLOT0LG2ftJKMeki7K7OKeEf0IcusvzuHAz+6Pg5IT\nUZB1\r\n=5C/3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"3d607f1ae0cdde12fb8de53e6d0784f83875df25","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.5.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.5.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0_1605814051307_0.5968037864081912","host":"s3://npm-registry-packages"}},"0.5.0-next.1":{"name":"gatsby-recipes","version":"0.5.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.5.0-next.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"32f21cf246e7ba30776733d09dce85a4f831163e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.5.0-next.1.tgz","fileCount":153,"integrity":"sha512-wxD2Mf/HuxCZ+ClesAAmtYAKI69mmnaaQjEn5uQBqJtBJVBmA3Nb6OeoMVT5Cf2r02E8ggbE/z+CWJofduVWUg==","signatures":[{"sig":"MEUCIQCbg8QNOvFV1v/g30wbC/rbjzeocvC/f+lPY/i5UjWwswIgMI9xOPN9TDZYwZEhQwRy6MwXSb/OPb35aeKbRn4H6I0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfujTaCRA9TVsSAnZWagAAoW0P/iTDUbxN3zHPGvBXJjAO\nb13QmQI6usM/blpxs8yx4wwTYTI8tATwpWuSHSNIH4YZvpjTW4wXKMlQ+gKh\nl5gYIhC3mDUUCwDTG0eFd3YKt7vqt8UXU+9n1xr4Ops0suZ5tlz4QtD+w1Gb\nKrgg/9/UptFWvSw2ZK2WHsA7we5ZxnPUz2oG4c73O/z3aMpqYpRLZlUZWqGc\nIUtDGvmWIQYB8B4yOG1X3Wb6KeuT//eMYy82x8rTyydTiXB54+B3fhVnW38E\nHoGvPlUfFull5o7WmJGz0QerdE4hjQa9VR/Nhj3FGnZpPXkb+zyqV2prI36F\nyF09IyyYie1xwcpWtuGB5XqGd3pylIXbfPcZVccBoOFTY+wXaGhLiLbG69W2\nu4G5+asBpyQ3isBGg3k8UeiSY35bn/ySKwRD5S8M/IHo8Vd4qBp0iZhh8nD4\nNM6RvZ2EKXGxPwFUtObQK38Gbrv1xCNuZihEijQoDmQfxM2kE+lMTZv30Lo9\nezk9MUW1DCYANPozpxMJfOR+qZ0VFDcrpL1btUlljiUeLKZDBbyn0jid6Nnx\n7OxUS/um+/uSDDtB+xDYJweHQiSWj3ykyLZQOjPKz/UalFahKkBxubnw4rkx\nEt8oHLmiUw3mHXAt7Zree8fJ3vf3SjppBp+6hrOp7v+OriPqKRiXUVPv381P\n7BTW\r\n=5AIg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/core\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"262386fe97196ed23d532569b53a45cb1dc96345","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.6.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.6.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.5.0-next.1_1606038746044_0.12433557130556827","host":"s3://npm-registry-packages"}},"0.5.0-next.2":{"name":"gatsby-recipes","version":"0.5.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.5.0-next.2","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"60312e60fe8810845c0859e3f4c1a8ab95a21722","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.5.0-next.2.tgz","fileCount":153,"integrity":"sha512-Xu459gN0+AvEBRY67pbizQchjTnbXBW5UmP7matx3vU7nQ3XX5X7B70XCjeToh223GCYZey8M1MUG+Xzm8IPYg==","signatures":[{"sig":"MEUCIQCz6VXc49DvMY0zrwXtcOaspZUAeuyFaNeYlZGSZf/qNAIgaP0v9U2uDb7XYVsmbrFqfpEgTqdE9e50kC+Jwh7Hu8Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvT4WCRA9TVsSAnZWagAA++gP/jaGt31t+RQC3lcl3N9F\nKP4kurKK8Kux5SsMlLDREb914kOq3ntO58lsfo9GGIwbcSMWE63hLq/Nf9hK\nah/JheZ29i/7fpt7dw+mKQkj/GU/8Kw91BPBtiA5G/k7sDxuiG7K09/Rke8B\nYDKSGRSKT7CTWChAIu6DrMqu2+1tosVwVgTspzTYtNa5bP3jnxPaG/46XquV\nknUBbdsiycfgjKJhDP0Zr3Loub7CNmtWwKcduFlGbbodQUYWLFW28wSU/KBC\nYTjAMSXy1jzfEe0vY0EtclzSNz1cHfQDN7/1wn8R5F653RMRhExLB6JI/yni\nd+2UNIXi6NqtFXuPEIt/XQMQGDDJma/97YUbAcR05WPIop2XNCCyqsZml0lF\nVNrwF/tCsGS8urAwTyYVISaRZOyDpFfmv90zl9R87bFMHm0NKR3QEqAv+0ah\nPYgCOjXGNKUdOEBpEI6nRDXsG7bTbvEl7fDMWqzk261631cwPgEswX5WMDSW\ndJGMzqfU7imVYg1kYfIOsa0l4YZanKe2wPlPQfaLRPs9Eg3v+QInjQrnerdS\nbHqRCg4EDP+DQSP5CIzwmGg6ArNoWbHoOsXFVfszQ6v5wHYFo1OoQCMWUAmC\ng0CPiJJGjhq1GKGKtnxw9PnFH/dcxBoKMhIcTdUdf1QCbeVH/YV2W4KoI3fp\nFzIY\r\n=Lri7\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"45116d15ad9eeb690012140d4432d54dd4a63752","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.6.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.6.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.5.0-next.2_1606237717696_0.6021034187781955","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"gatsby-recipes","version":"0.4.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"30d47d1ad6be98ada49123b18f55176f3d53fd35","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.1.tgz","fileCount":153,"integrity":"sha512-DQysS976BsG+2jECOhWfAaFRd9aGEfq7f9ixYY2LCGoqNqJfgmdZo79iO56Pbvr6bgL0DV/qNSk/3bkF4rIdNQ==","signatures":[{"sig":"MEQCIHile6EGtIx8UVoMALbTwDc1Jh/RTOL7VaGh4i32SpiKAiA5z5eM8MnVjMfux94LRU87rIiQTLtKiSmWmKDDO0CcpA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvl9UCRA9TVsSAnZWagAAV40P+QFToGZDhSnpjk9hrAyu\ngsXO1DO/UzRrtk5+jUgTGawm0QCIo6751OFpPvDJ6xhvOQnnkcsZKcU1cM0J\nR2YDOe29r6vuY5Pb1yuOb46ifpBa/1brojZUGYq+VX0NA1v2Lr32/sa16+8/\n8jtZMJRilTQqEXr8vAoy/077+Di1I8F3m8EAH9WG4J8X3HaTCqobw53AzBzT\nRf1fQQQiuBKtNuWFwTwl1FXfvcSxzoFXcSZRAf51v2x+cSkWjH1cHx8LrJA0\nfpJqh6hPiQs68e+WHTLJHUtdXdqO5okl+Ot79bv4qWrzug7omwmIdCA3zTVD\ndNBzFYzfCWscgCADiW2Xj+yASpdQD8CwHq2zhdS9AAQhyLDQ33IDIdl8C0q9\nLQj7fM3akg2tswKEVKPAxye1d7+P2y5H+br5Smi+Z7On/Fo4sVawHK0/rdZU\n7UHAiLoRhIjlg02C5T964wAdB1xCw+Mp/r9D3aZp88cPAwrSPjqMCke3uI27\n3Pf1dGjx10qrkQbbVWSh9bdkvDdOl6TUlis3dWlkme+ooS3p7RE4LFfjL7yU\nRS4r09uZLaafX3fSBi7aPirnsqgQcUKI9uL50x3MZHT7Ql70sclGqJE5O2yX\n3P4+l5zjTGOEv1LCw2r/VB6HpBw+quleunHX0BWwup9dQMSqgfUApGqv2s6B\n7F5V\r\n=MhU2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"560c9f6a64203250e23909064e084867b76b1d8d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.5.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.5.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.1_1606311763713_0.42810066163836713","host":"s3://npm-registry-packages"}},"0.6.0-next.0":{"name":"gatsby-recipes","version":"0.6.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.6.0-next.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f9b6a7dab57584ee3d2902671dbfee30dcde3128","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.6.0-next.0.tgz","fileCount":153,"integrity":"sha512-ev6LDgWRZxjLyg8AN1o7F3yv+pvEqUZi6TXB7rOHj2XEfbXb+O0rY2lGJCbUH2FhdjyS9U/e5Ow8OyTmyUBi9A==","signatures":[{"sig":"MEUCIQCQLgPm0wlrRTpSE/cQDfso0P/I2C7WDTGKfOpinzA2ngIgeZzsxHdnIr/ugM1Cv6cngCsMj7nGM53xiGOWBbBr7Zo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwCWnCRA9TVsSAnZWagAASPwQAIWO9gwMFIwBj1NAHIlg\nKXdhtAPZCu+leS0QloqM3xdGJlcUgRrkgLE9+2bOcSIP0Vn+xFwUrjBEhBQ1\nbg2YV0fY6WIyJ0uKYRcR4y2WdXb7+sXOxgi43n1oCgnGn+iaadR/pi65Ez+3\nl+bKSFsHljp5vrJtvG11qbvBdmnP7phZIfsleo2oaFSfuYTEP3GmGeriNxW0\nALc2NYxX5euBrJQqtYvP10+HA7eoma2mxAZNmJgKfGaEnQgzXHkg7IKFxPS3\nvNNhxQuCJ+deYqgWeSXG1miAdl2AV7uSkZNH7lNZ6bQCuAii8i41e9U7+Jcf\nuDHGzeud7iDJQb2CX6f8g2MnS/+IboORyW65V9Yqn8047HgM1bVZvEENT+wF\n8bbNQ6h1z0A7P+j7L5gjJIrdBA3W0RoDo7Fzpu59VI3POAvaKhnnQKPvtGdt\nRgYwF3x6peTCmKStnViel2VcYlT897KSBdkX0Qbq4qdET6n8biqs5AwSHttO\nSNxt9Jc1iWiq5bMTQksDtkVE1b3f57/z91vShtJyUDrSaARA949fdwwTB9WZ\nsM2bZl8lDfOjEs4Kep6OR7fkYn5+vEycCBGTrADJmk38Abd5YGt8xFyUNGLG\n4hagZt+ZabIWaUT649RbiuUlO+hgu1Xw0QSOY268Y4hY7gMQcSuH2gMZx8dR\nwsv9\r\n=XHUJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"443c8d0daf0b2f5832ae2597d8bd46b5e5540133","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.7.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.7.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.6.0-next.0_1606428071046_0.26689651007273896","host":"s3://npm-registry-packages"}},"0.6.0-next.1":{"name":"gatsby-recipes","version":"0.6.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.6.0-next.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"63f22f3db1c10cd8bb622cfb0f8bde9669b21a8d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.6.0-next.1.tgz","fileCount":153,"integrity":"sha512-a0iN16+FfdlIjJHJyefECHGgHspOY/mHdjSMUlzNqbSXLBKt9hlLEUk+oCNJQmKD+T4uhoyqn6Ke+RUnl8VpRg==","signatures":[{"sig":"MEUCIQD4ABXdYxEREVSz5jLFKExcgjNlXe54QKur2TDhbLwjXAIgMGezgtTInEfu3AkpoK7vv20+hixu/wiTV0ce77m213w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5379404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxrsOCRA9TVsSAnZWagAAhcsQAKMZ4ChCRC+1IcigBRnq\nKqaFXdYKALexo/sYMBFiHuAlg28KSQCDypwL/YwKZdH2Bi7Rts7sbW27O3kx\nCjHvIoPXO/c271KImCe/LYcw8+HKOcxQ2IgR4KxKUMOH51kWJxZUbuGcvF0T\nCcYzP6BO9abHg4ie4w5BdjHiutAU4tCRyVYonDZ8UKM4tJJSPt2/BzCl7Tax\n5hPqqg2mOYdgCHlEHioqoZx9PiS4wKapBZWT3KtpM8JmGgaKYeIvh70bp7Sg\ntq09oARgT3DovVY9V3KJY4jJ28xJ9UupLTY9szU/oPSOatcgCk3tifV0j91l\nGZPOyYFCJ0aERKx5JzL2R+Wans1S8F4qHh6XTld5bos5wfefgkccnxAsex16\nGo77EnSBy5mNKh3+BkoVyD6MiWN5B9136fxam3ePoHlQcrQwTd0bPB7FozNM\nLHzuuQ36rP5Mikx3BfywcqZ8N7H+59dHgppsgEQD8MQoP30LsdxFt8ZGjaGj\n56CLN64S3SlZjYWMTakqIQq1kSnqSwudeFDQVwx8FpEDrFtt/qXFEzkKK1IY\nHe52f3uzUwXGI4V9Gd3VTuqHEfpPPUPrlIbx5t3uOz4K3PjbaQqQ7ZUADAIl\nZnbNyCSwVDdmzh90mmdxd/e5qwOtVhRc3vlGXY4/sriSeALTJsXQszEIQ8tw\nCjsP\r\n=37kh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"43e4050db8d0eae5f4b4cb50b58aad85bf45a790","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.16.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.7.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.7.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.6.0-next.1_1606859534057_0.30313766630185435","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"gatsby-recipes","version":"0.5.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.5.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"laurie@gatsbyjs.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d9d701ba3dd2d8427ab7f1c9cc14b498ca28b26c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.5.0.tgz","fileCount":153,"integrity":"sha512-C0JHy4vDbGYGT3GSACpjGygqJ/kyl+GM+Li19G7LHeBTJ62o1+mF5zkYsBjMl43S4+3yrLeB4ijukPZEQdlIAA==","signatures":[{"sig":"MEUCIFL0EJayFCuEjnFnzgV9QavuarSfSHNQSdRhWWk150D6AiEA1cxE8Vv754lzLdN2XimnZ083W0X0Ajiw3Z/W3475IAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5378660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxugoCRA9TVsSAnZWagAASisP/3nP7jy8Zx9pT7dausjZ\nTRcKcmtWTHZwEgJflcg/DpdQlwJyDiPATXkWIN6JmLENb0qEmzgg4E2VJH0k\n4WDDq6iE/9TDu6J3jSW3DmSysoTHUJZ1LGgkzZaxOfVqczCsu8rWhT78gEVE\n+hyHop+vhHyabfMTj8cL7mkajHNSV413nLdhgEdHsvIAyXx6BGyfGKEaOP2A\nSBSQkIcRz34WFHPA2kHLls5cRYNYprE2NGf/qH56OZO3Ir0ARuqsxpNuKICC\n6VJoPlqtSnnParmFY9NakgxkAw5tn0gqIF3Fi/quFFNB8+X8yTfEr3kgoXxq\nDTCHEvPdVJlr5YtyJEwzbifES9fLdqSeFxez2edKk1fOodSivjEtdkpJnm0U\n3+UMm7a59PC7DNHMWjh4uQgqtxfbqzKsCVGIMZrKmyFaXNVjcjdJcibgHLpZ\nPEARth7ObIVfRAdZIxjmUHJNzDw7t1oJtk/VDN9Vbpm7rW11ITr+F/aAVtdU\nWPIS8iOAKwgxE8uVEPLmCwLb+0bzFlrSwbqU+eZBUPVlu/ua7XF7ShzUp1pE\ng3Vjfkl4z4+9O8uEXyqHzbu2AJdrlaJC+sFlYkS6kDRv9DUr4Evd4kIeZieT\nMm9wlcB/c+T0UKMljimY6VfQXGepZbj2euYBc8Fz9mqc3Kzr6Q4W+BE7JUpb\nXG4g\r\n=GBsF\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"52637b6a88f304a79bd3999615e224113b255349","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.6.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.6.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.5.0_1606871079816_0.6801697455419158","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"gatsby-recipes","version":"0.5.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.5.1","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d6e3d07cc7d0dc0b073e5522e4c3c3d67686e0b0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.5.1.tgz","fileCount":153,"integrity":"sha512-6bKV8/vyWNG9mQQUL3XP/ZbiugDQTNxZT+Rs61qDU+0drzMjpIs4YqP1gj9PExp86mqnGlezEyvSK9gEPZjb+g==","signatures":[{"sig":"MEUCIQD8HwXbyEbKEAwHQ/zcDFCfP7GemXpCap5/2gdgjN377wIgZSRmaZgj3QB4qJHKSwDkNs+c0cKihPmBupALewo8hew=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5379086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0XSSCRA9TVsSAnZWagAAEaUP/3hsYgZJu8328+SODfaU\nXSmmm1z3fPmGtb4s9LBs6p8vtSHwR8EJAnXHiEjMmDn2cw/G+GfkF8pKzCnY\nWWoUHH2SJIa3KkpPrz1vH6sCeNBVFLkUD7kNzlYBnbC7YqCBIkpv+SY0EVf9\n0Dxpt36xpiddNZu8qTmHOnhi4yTTiJuipA/thdmNXovs81DuhyErVrxQbNTS\nr3XQ/fQmZY8IULm4M4NNytKNlsfAkie5KVpChgh2U8vE9x1ICwuiruAxKVUK\nKa/TYj3NOo2OPbZBEaUKjsHRGhY6t2QlppDITGJJqrmmCmtQA9N8Gqxn4lUU\nN84KBkICoSD05X7GwvDjAQYr8TUi2EIh1I+f3KzxKwhoYxAKJY2SsNmH5tN7\nmAjQHEyMpRNrLFlNvi9Q3vflHpnseL0wIoiK+USNPnOHiIFXlsL3pgPz10Kn\nhMoRGdRMfWD5q0ai9YnkgEG3eqVe3pLyEU98EnfTDcLeCzf8xD3cnP5XYtc4\n/OmepnWtMuZt7H9AeMbeEhcSKBbBBqqF6ZOf6H03ScQt/Tc9Uyx0gWnXZD7B\nqmcg02MpYuPbMv4hb5i6EWuvC1mVxyFHLiCuZ/B9XLh0RLH4fKz77mHVni/N\n+UnClidFCcasF6teuNtdk2tknvKuh8/pbeBdXhxT785sidM/vytk8hPll6Se\nUzKP\r\n=7MID\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"2e9e36a0a5772d638885df604e08d80153f4c219","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.6.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.6.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.5.1_1607562385630_0.266327518745612","host":"s3://npm-registry-packages"}},"0.7.0-next.0":{"name":"gatsby-recipes","version":"0.7.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.7.0-next.0","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"43702f305b4ab8dc31e76a770a1f35a3deca094e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.7.0-next.0.tgz","fileCount":153,"integrity":"sha512-fpdXdThtBcHy6Mq7tsjs9PVraVP6gQyaqSWng7X+IbByYMxyVrdIaNHtT4HteQmMJEfaVL4NFpj647VqKoUj6A==","signatures":[{"sig":"MEQCIDIgQ1sZblNvJgOWMRq3yCL3l68E7aexK0MeiKgRGKRuAiApQ2+o9Z4QmUctevTn7J+KfeOwPhYRs4Z1iNQq4pJ2Xw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5379704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0pkACRA9TVsSAnZWagAA3gwP/0j5k/RAsR1paa9LKRZP\nRlm8UyfEJW3nmz3vWLdJODiic8L6/ejrkfdzJGB+t2T09aSVZCxKO6wnp9uz\n8Ew5cJglGUQ+5scQil9VKMGKp/D4TSaXJq7BO0Z2/pnZGG4zbbJbuuo+D+WM\nUtB2d7PC8CUP/faXmzsw2OrHRdJCe/6bq7LtM9orNWP5vF2GX5xFsSJEUBsq\nuSm9WTs0+cY8QU1WYDp85FcJ7Q8j3oAdw5yL8a+im4w1BgYjLd0jbacmATrz\nJB1MPLLBUtev7+FVTYPXwRctRLVDDV2lf5wPF/uBLglG14zZnBrBjBATpEhO\nwEkIkqSyhLLpwwUd0LjgAEB6i34jf0oRo02fYT6lM+p3JoyQLhHZxepd+igd\nPzj+53oXMJi0VoxLrMgYevNUIHp54XPEhmCHQCHeWbaxNq0YpQBh/F8jHKes\nlKugnhEWsP5RHA6jWsp0oglmXrS1R6cK5LMaJl/7Khm2UqOPmQlgSVT2im0z\nA2kKuWYoaD3Eh6LaKExe0NtpC/FXK/Q/rsIf345zm89tvqLVHag+MldHDrSC\n/ddi5oaqx64wwdsOSHkB2lVMusyX+Vt9fEto6dFO6Tm6jXemz27BKNnGzgTC\nNBWUnm26vmsS1sZTTk3pXCCgLMMMhkf69V+s4uPnBaPuvvu3vQvqny/xeWMr\njL8e\r\n=sOgl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9eb5031a84093da881d779c3a0e3335c085e5f83","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.8.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.8.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"next","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.23.0","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.0-0","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.0.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^14.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.7.0-next.0_1607637247887_0.6641504062916193","host":"s3://npm-registry-packages"}},"0.1.59-ink3.22":{"name":"gatsby-recipes","version":"0.1.59-ink3.22","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.59-ink3.22","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"30460c4a5f1cbb88f03a43ccf9e6e44b2de2614a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.59-ink3.22.tgz","fileCount":154,"integrity":"sha512-34m6Y1ux6PDqrYRHNwVPeyIxa3ECyqpMEs4Yj6FLzxnnUi/XzKJuOxpld5HeWVidUErc5Xd1vkEfLk9AEOMSsw==","signatures":[{"sig":"MEUCIQDAr9ENTUtnIsbuzTmGdXx1nnCT+fL35lw4S2+g/xpiyAIgKUxlXjllI2KlhrI50MrcJUb49qSz+j8fc9R9jB8GT7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5581249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1KjpCRA9TVsSAnZWagAAqjkP/iEOLnJCtbXr+BVqf6ns\nlBBEFvFjjiZy/Rfasf8rnvdHNDnxKGIcja5vGDtu/vUIvVO5aqMw35/t+hu5\nH5yHm7EJMas0TuEgCSCEJrnA+o66rysuuQgmEQJ7KNV+cebCh24XE4tuzuP7\ndZphQ1TK5L+L5LVXi61Kqjd2QKMmpv+QKQa6Tirp/4xWDjFONNN/AXgVikQY\ngC2JpxlG73xOBZEDtgE/Omg+i9BCaG8opdN86968htJiM8XwP6X21RjsSK6j\nU8qyHS26VPB/gMCOZt3HNSTXIR74NJr0HQxyxFw4zXSJkQNhHHZB6IOTsKRw\nJRu8Qz/vCLkUGiikz+haqoDWEGJV+ROvSvDdZyDaedeo/NWPYLdadqx3da3t\nxXU87Muv5mpJaNxvRC0m679fCuHBuDf79flXrwymr/xiz2ychmFcnxo4zkF1\nSHU5kTQ4+fmxLoSJz/2hcwDBY5VbL4WisOSKWSqIfIIki4zJUJQ32k64IiMe\nzLh3XiT+1KnD4/cC/KH57GnplJk95VYt3bMeNGBGg/EiwJMAd6pBaIC1EKk+\nSrJ7if1Jr1NKWmLd1xNQ7Tyf/lWg1kKS6y5Pal//ESGblozDWMhBD14B7yhM\nQTA+xEtf/EZw9HRCjKO3SEvlX8gXQJ0ApFcGWeXRAzWpOenoIRcOkI+poeo2\n23Lg\r\n=pQJX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"be334f3ac783883195920e458031be49726d1a31","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.8.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.8.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.59-ink3.22_1607772392805_0.6001672752774019","host":"s3://npm-registry-packages"}},"0.1.59-ink3.23":{"name":"gatsby-recipes","version":"0.1.59-ink3.23","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.1.59-ink3.23","maintainers":[{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2903430d03baa624255780b43e0228e146241c86","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.59-ink3.23.tgz","fileCount":154,"integrity":"sha512-4t+3jYxNVujJIYZaFQqzfORGzXzcBxron/S9wgj4/zTfVUdcT9CMC3/2hIZ9MhQ94QQd15QXD8daY9kr+7R/IA==","signatures":[{"sig":"MEUCIQCNsFMmJSYN3iPWcIB8Tbynnm+osZoJi4FBmCHeSUmUTgIgR2ivGo3ISR0o5j9tReUHs823aWnnLpUjXAhdyb8vqPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5580777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1PLZCRA9TVsSAnZWagAAh9UQAJGjGhTEW6UtfXR9TZ35\nchjX2JzQVNBzWL4DlcTTN5H4uVWeHFV45LAtINVSdhGJAd971ID57PgR9CI+\nzaYbcul3L0BvXlJ+pKHANxlcff9nSfguK7efKq2i3ScuRfKvgW6OEmDdX5tO\n25fD+z5G0GTHELajtGfcjbz1A1nGWc5SeJKfB58Q65vowkLfYBjsXtM7v8m+\n6sdiNYgKtez9h7J3ag0AgCnGByiZRmSr5vEu7IrVPweWen6mTfY1RUsR5RZ0\nNbJytKoACASnqda1wZrtNxFYC6KtJCGhJDDakoWFVpAVTR1nZ/tJGLRcwhA8\ndU1mZ5J5GKdTadFfVa9ugGzGKWI+dvCttCy9CSuRXrjNoOdG4kQYxlNFj876\no7FEHEiD4VwILK4fyv4koDdbP44uCk6ogfAckRMHFn/pArQXzQGbhz5XlMgA\nDg+gRcgVj84geMO8quQ/MPv7ptoKQRXpLLHQKi8dRjY32y/cMtQZiZid5PqB\nVCw3KX1JGxDSQQmmpZ/clE7Zanu2J0pXa4Zm+iUz+Stc6mbRXhPOI5M8sWYI\n3vNkpQqkpEcRpjuCLttHAcr7aKenvQBosgdyj4mnYxETwmY/1OkYwVVezNzJ\nlCZYkd+bdijRu3cVLotO6fBhYr79mLiGdODUQuumd1teaimHpUeGzvF+9o6E\nZOCT\r\n=zEY7\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"cabf8fc23f752f6b360988a10998a5261b8f5e01","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.8.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.8.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.1.59-ink3.23_1607791320904_0.8070304815022808","host":"s3://npm-registry-packages"}},"0.7.0-next.1":{"name":"gatsby-recipes","version":"0.7.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.7.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"676c937e17789c4098960d07303ad061a4e25c9c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.7.0-next.1.tgz","fileCount":153,"integrity":"sha512-GH9chAu8EjQp82wpWpSBik1jYagymF/oNyx8KLAVgQbOLvtH0r/SZ01a3JMHCZPfIZb+JHL+F+abgR3eHhatkw==","signatures":[{"sig":"MEUCIFtK/4FhELukQrQdZf99i9GoiDU6757duwZ661xe62KYAiEA7khOSvYK9dkkUl0cFuBTBlYEDLQfgTF35IYTZc8UQJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5574953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2L8YCRA9TVsSAnZWagAAunQP/24UmVs7XhvD9eZi0ekN\n0ozhK5p0ej7kUDUJ0CcQzbRLuR+H4wqt+V0YB6ljgF3hdBGyRaAF7KtPirHJ\n2QgvKVeaUNk+UbS6EkfdsVKcQqtjuZZepsUBaB9v6RYNtANa8HBnFrpCzOgs\nReOcxnxrLVJD63BZZ2JGUODEsZwsarahQlF4H/12f1BrHHMReIA5wa+jhVFs\nJxZLHsbmTiJP8SCRSr/mvzIVz5E6gaQS++vnWBbetkabEOa2Uv7j37cXXMvE\n1BK/xt32Pl55drKWQR4L5VxhF3HMcAe53/26Qy7lrvGJUD6+F4s3f9RAmEPI\nAMxRB0TlylGlCvQjCPf1a43E2Ch5TqArvlLbVegXV9yR5ZeTrOjjQthz1PQv\nj/BoCeSnm+0fYeouopDmnyrTpVn5FtrAsSgcC7jXRkr+5NCL5GCD4GVYjZ6j\njToH1nRxjxEuyUWTV0GpFgsYpSDVqrzwLb2BWJJFmnE5DKYv62UCHkdzL4Ux\nQc71fLHvR+dxR9v3+32b/6fCw7NhU5WoYL4kHrs3P0LpT/vPNqD5kY0tBEZW\nJ8CTozV03YaR83siaURuX5eqWjTVzP5+5S9r1aADS6zat82r1z0dtSEoZ1yG\nT/QAhmDCoDFSA/kDK/UDn71ZDko/2dNuYKQXoV44Jl11VfuPBqJH1DJwC5Sa\n7PYd\r\n=DLG1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1dcbc097123fd47dddfc0f925e05213b4dc1d666","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.4+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.4","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.8.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.8.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.7.0-next.1_1608040215335_0.5710388988794732","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"gatsby-recipes","version":"0.6.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.6.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5eeb7cc1057aafd8e145a818695bcc489fdcfeb8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.6.0.tgz","fileCount":153,"integrity":"sha512-YH1BFCbuMNuvfw/3+DbQk5GDVNnz+1eVNdaBtE8Fo/Sa7rAfuezHnGtaa2CASI3V7ZKI3D1U6HnhQNULlfSa7g==","signatures":[{"sig":"MEQCIAy2szxLPcZMtYSNmjAnAgjTG2Ks3gZjzvZFUGZUuEtFAiAI+yA9BpOxHPbihJFGCH4sWl/BY6314HU3CbJ8+j6Kaw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5574729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2PnBCRA9TVsSAnZWagAA3goP/RBoy3CmSoP5UCEMWVnI\nnjw7KIJMO9NTohg74y8q7HbKqDaqCniAx07W0lmuZ8ZAPezFLnsU+XPAaOVG\nKfraXLuANSKZOVQy/197a4CubkmF/N1Wqu3RiDJODG13fNh/3sc5JM4/6WAZ\n3NbjDn5z8qeuCD3rqR19zQ6DZjdo63UwSeV2l3TADpckGLcJWRZCvyvSs1Mn\nKxj0jwggPSLhjzZQO+4atXCoK8IoH6uDojJX+YSOeEkq/EZ0hCdbCLdauRMK\nZy/eksCaPnLeDDUhQwK7uIwqaX9KGp4jFxA8hmWWB7ltPCEIw344vIF7oDVb\nciXdK29dmCp95Gx9v8g6cLF7cMUWjfmiOLgw4Glkc5a6/bpcFLtBKBzVof/v\nFnXS+ScN8EkAoH0JFTD6jlAgKPTt/k3sBRNTgXBUNwcHnL5G26UAiuTVhgAf\nItLMf1wrpdgYj0Q/B0+rt57GEdvM3mROVrvj5Ji2qIF+5DsBWACWmAhjsmRc\nCkH8+Q/pKBnALP/EtUZ/UVenZFTdkmvQmQzvkTfcHNhDQcqQpHrv8bWBDDd/\na2HvX2wjOFGjQIn4le1HjXBZlq0/57+lN29wnBVVQFoduxjO1pTDWBfaOfyV\nO3Bd1A4TJMOTrND4pwEeha7HSkQJj9S/0YNabwQ+Gso0XX807Q98uBo9JXoP\nLZ19\r\n=yQqm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"03d497f15bc968d88bb0c85ce427da797b8fc61d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.10.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.10.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.7.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.7.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.6.0_1608055232594_0.8314021442867505","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test.314":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test.314","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test.314","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f85357cc37f9a1175a58f867ebe22cd3d48f3dd5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test.314.tgz","fileCount":153,"integrity":"sha512-3lQf/au6v+HnMSoqnZTA2V3S1OJoPmPz+8OKhdplqi32gNJg+GtkapNzs4qtig4Ujrr+BWvSfPKfvrBvb9BVIQ==","signatures":[{"sig":"MEUCIQCI1yTxj8fcyEQHhG2dDGYxsBRw9xaPEOqqNRK7aUHupAIgNjTFGbiDbNaJcLu4v8GRUhp6DvvLvPuXogEYxGonras=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4dxcCRA9TVsSAnZWagAABLEP/jTBIAesjLLyicPE5nAl\nF+m6cXJt+izlwgTgroNc+TO0swodULFPx6IfF5zi7fJ3QGp/BOzLiVLEyGdk\nVGcBtVzDrzu8hXhfix/JJkEYTfWcQ0Ol7xdZEdEWxm3IP5JBEpwC4Ympjg/Q\nFrjdVU6CGOmdt36Ey6PuCjmrOChElL2ekkOGfUY6bGCpJwstqN3V9rHhBT1y\nkANY/JcrjW1XApQMVUH7irebU80ba5ZovdUUMxTJqL0Vs3yX8L4Up2WGJ06o\nIBNzMY1pjLbUKL4IVWyG0bA/MDDb2Uz4Nil/Amk9l7hSqDpWyZ62XnI2RVBa\nGXIKrwW8VTMuJ1tEb72mPfYK3Tdkm5cqZQJ/PJA1gvCHZZvC15arzvTtR9pG\nqwLL1HIxZiJtxS2wFfDUcuUMZaiY14hSLRHHBiTnB1s2IBXaNSsNx8mIPrsG\naexy2htLKY0sFap+f3WOj1earGEIM+J2JnGKT7JZ0DxKF7bdqfs7WIIiRxyP\npdJcZSP/R3/FNX1VWX8Sqzh6v2xbuaiCGmpDXMbLlJ/sbnVa84EfFWkoDg/6\n0jiYvg9Mv/0jE+QV9fzdYi14ZUK3ymyFlDrmsb+uU5jWjeB7HD7c+Wg46hhk\noe+z9jviP2J2ShdIEbkYdRhWzkuSSQISNUI88a2rWppojeLSgIp9xb+t72n6\n6vb1\r\n=NHj8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"57d1ad563d0534d70f0b8170058a38c7f4ff8611","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test.314+57d1ad563d","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.5.0-telemetry-test.359+57d1ad563d","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test.314_1608637531846_0.3730870069636931","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test.315":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test.315","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test.315","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"eee89a5f14dc53af6a6ef36937741e787480a5da","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test.315.tgz","fileCount":153,"integrity":"sha512-AmaR5frfxdor00UoZpKrDgiwjY0fFoClGCXKCA40fMTdkSlehamCNNyYiPFGupb2U108QtezpMMFqpYfQ0lUHA==","signatures":[{"sig":"MEUCIQCvaSxGU6gGe89iXDG+K6RDl+zt+DNLFAdDXvGJuCH5mQIgeyEZGn+vyskXfXCj6Bh2opmI32FwOr/7KEgOkfXUam8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4d+0CRA9TVsSAnZWagAA7/gP+wfxV5sBOHH8cnUj5kXO\nUAB3rKduASRMIbMs5tcmEQH+Vq0nLDo6zbZ4E0V+XdATD0P20+C0N51BVjNm\n1aT/UekexMI1RG/cyN1vkgJ99Di+12PRTG/LY9jDzlVVnvtDDeUf5g+QipoN\nkIq9TDIj6M9MtnAGYdtDU8rEr0OXmkPd0C1TzCES+DL8KL/vq5fcsRNl/Rw0\nLS+2fnfGzqivxtX896WN2DdZRPKm/Cts433roWonZADnJmkaT5AcYOiQNfNU\ngK6y6mT+xzQs+XQd0DDJ4CmKJ7R19OBPp9kUOnoz+NzjrSjn8HOfHyRQ00eE\nxPBIxeQoxfvVWsjd/2xd9hh8FPxlY2fnSb9/Fypxlg6mTxsfsSc9oFQhYEms\nELo0H+UsA7iXHzdlMDY3iMeN/RhHq6sWLVeC+J7pR7J7Os0ifQGpJMLWR5za\nl/SuucStt0TdsijoIGkVX7g/QMAv4O1+gc3eKbA02Q5mIuHGUDjO0fIyorgt\nAkNPIOkZ2A72YxuHCG26PG5xzOQqzSy5zU/kEMhpok573efpHtJpbGKIhC2O\nYjwurYwiqJnP5Limu6lCldxrojb+LGVyb8RHRi5lLC4PvObLi4CpXOVyQyNp\nNcndoYteE3ZqS7ycBZi0D/VOeCjaKSGmZlRUq/eCC6fN8oNTakcp4oyZ/Epz\ndmUB\r\n=q9SY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"4ed521cdcd05d1ceab9aea5a933b27deb26dc862","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test.315+4ed521cdcd","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.5.0-telemetry-test.360+4ed521cdcd","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test.315_1608638388065_0.0025450934403015157","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"gatsby-recipes","version":"0.6.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.6.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"aa52bb97bc69c3e3a7b3d124b17ebaa0cd58c17f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.6.1.tgz","fileCount":153,"integrity":"sha512-yuccPEl2LE4MA+jG4h5sNiNJQnTqK2uXbTytuq0erUreT7SipdsmpbvAcooJYmijGRm0iyzf763fkNB1MEPEkw==","signatures":[{"sig":"MEUCIQDISUNH90fReowNkXr+1WbA27zjqBKMpMy8WYd/uGQ7egIgO6o6duxKNngFakqZP3FVj0DvnJ1gkmsjHwTnTslgSv4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5574898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf43VuCRA9TVsSAnZWagAAsvsQAJBEFMUwv7uuMV8tQlYX\n3y9lAeX5SjszPflRv6odbJfnhD1qbv3G/c6sqSRpAbLYDSfLgCPboW1q0c6i\nsMfu1hK9F8zUSeGDliTdeLb49Ru254np4m+x9ygKZstDjftXfkJHp1QHWjax\nrz1w+UrL1aNHx16kkoYA0X7e58HQvLEhnVaQ2UBEWxtXvG9UO9aqC0mnygEh\nEEOSotvJn70abSdNgxoAHcxak3O1QcoB6hSJyxNz0QZ80FhQ3G0DAYDQlSep\nXorBWIUABU8y+EZ0NtMk1kYTKqi2DWg3Kn00gtxsux9GRJ8vuBcTQOTpOZut\nbB1QoWq8FNBATZQvpfbu0A6sArXEalBGtQuaL6ga6/c/gwBYBTxbto+0jaM2\n4pQmOUn/47TZ0FE6CRbh3C2h6KC3FZZk05oQ1XuN72gNFNNOnTL3et6HY8TB\nmVLcg7EziSSsFKCb0owq6H1tIRaFsvl8QcL4xhLCA5hzQ2bik1EsE4Aw3yS0\nx9PV0nNxfLeq/s3SMTb7bWvXTZx4NS/hCV9L8HjPeURDtHs0hfje9/eB5xPr\nco/emqz5D6rf45OtPs72MNY5j2oinef2rM5mTH4GNWTJbiVhNdP0teTEbM5/\n/MKJx0upOHLvXSnaCnW5X5TltpUjO0BDR1t5DIG2HjIR31S/MckzaD/x1nLX\nKEGE\r\n=vN8k\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"12a78aface75f7970c36a3d9c24a5d8dc5dd30c5","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.7.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.7.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.6.1_1608742253799_0.14718759187981156","host":"s3://npm-registry-packages"}},"0.7.0-next.2":{"name":"gatsby-recipes","version":"0.7.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.7.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"937f2095a0eeb72fcb92959f7da859584d0e601e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.7.0-next.2.tgz","fileCount":153,"integrity":"sha512-M+EvjbAPI2a+KORGAEu8fToV6ZeJMhfkMRmDw45NF35W9CIX96MK1FQvZ/n/1VPbQKcc5sWvwGvvYL6TmUTGCw==","signatures":[{"sig":"MEUCIQC5FYmm/L+vjEWq50c9KMPIRniY7BjMsZsnoGbMEnUyBgIgP9rPILgiLIpHt+tACPH4cs70fycGkLGhp7H3O44rq7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575142,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf6z8uCRA9TVsSAnZWagAAW7gP/0uiz0r6PmTDk9Rtef4X\nnY7LHTm0yTiI23fkz0L5WC/j+EuHoJpA7puVaK7gcp78xsMrFalr7NcDiFGh\n73pDrU2zdY7FClqrteoOINKFF4ZT5CDiY2DF4XSO0I0N3B32Lzdc92BvlRP2\n7tEODr7Jdjf9//KDs7F3LnvwF12RgmPsu+t9jnOEA6/rhGmwNqJQlsr+gX4g\nD2HmdMvo7bHuFkgoUdcYvVFKpdSibbRK2jFFPQf+cHWOw+Y2w0hnBLhyqxKF\n/tDdxT82vi3TcX8yarrManWbIjaoMfd85y7fumIYrhsvus2UvmgsaauXX7mQ\nQszCE5Q9FKjNPhT/nbhOKDjGf2pL/ned/K3gCMVl1fG7rclQ5zzPx4zcEL1+\noREiw4tBB/Lf2igTbS12ulmXpNKis9rwCzlc06SQgZyDpchK8Nny6J2IDryi\nSz9p6sqj26W/StWScJmKzNjjy/FoLvenIrOydDGnMHRcZStKEGsPAjTMmnMj\nqvl9NofdEbpZObUUde8P0PudCfb6GEAlkENCoPaumor70VWEQHc3/oYQSU9O\nrTQ9v+BQCxkbA1vYGaSqP0SFkK6J+A8vAjIf+j4el2W3aXqGthIhOjKmf2u+\ncDfqqiYE07uSX45HfD1H3hTXNHVNetavviA3Gy8ftTGPkWuJlTXjgqDZVFlL\nu6sB\r\n=wCqO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"968914fee46688f41de3c80f5b32bd8fa908f129","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.4+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.4","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.8.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.8.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.7.0-next.2_1609252654231_0.702694318763043","host":"s3://npm-registry-packages"}},"0.8.0-next.0":{"name":"gatsby-recipes","version":"0.8.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.8.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9ec98bf4f002e2124ffce0e005c7d9d61537080c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.8.0-next.0.tgz","fileCount":153,"integrity":"sha512-eZ7MeisRJnveiRUBmld6E+/qVElSwV0nbXh3T6iBFLy2TqqV6+wlqt9etGkxDXI4rRn5hlhFWdSlFqw11vjQmA==","signatures":[{"sig":"MEUCIHgVXN6n52boEV/VqloIzC/gR2opNv0PD+1LGLY+zWBwAiEAgw+38KA+vmDJ1TLH/ajUCQsuoG3AkumMbMv62X4P6F8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf650gCRA9TVsSAnZWagAA54cP/RxPh6HJhYlfdniRuRDY\nn/mLAnuuNZRkHsdtspX5k1+8wCE7VTK2YiesX9uwYWnW9W3owrFTBMYkw4VS\nBKsGQyGyOEKuTiZ7TYrB+zSJ51Dx3nS+9060vQcfacqMYyQWPRvz6d80Xv35\nnKaY3/Z7meKz3z5hheSSTQeBEjx1tbIxTS1TR/zc++wcU/oMRYr3LkAyGxel\nvydfMKaUAG18RtEDggEXyrM3AhqYeRDZyVK+0NemlGodcq77BDCfIj2UBove\nCMsodZBCpcxj8GcYdPb0QoxxdxrHHz0yw2b9Pz8t+466vkxl+JVxitLrfeWM\n4KKCQHEXLWGZV+NCDi0CnRlErEwo6BKFkSV4utMqC5qbtnmZme0tL9t8OMJT\n7QRc4ZauizOWGVZ2o16huBJJh5OwCPwnC1zyxd6QAkQb/PyuXLsgBdZFw3uA\nl9iqzZVs75LUqB4JoA3OJcYHLNq3iXBipRQgjJKOnvumGJg/Z7Oo7W08vL95\nJiJJg+MBLxSRhFbSKOdoKtXp/8l6dp44KmtElHoI1RICeObi8UcEsUdSXtML\n9vsrzivy29aPkL/C5efE7fxcyiQ6h1VYrtdAjaHlq1D2ihUKd2BWxubV+xlQ\nEqxg2+caL0HnDIqCmkwHjyQ6RlRcDeEj3XxLXsFHFQbfG5mOW7fKhyVCX34e\nTAsd\r\n=1kY+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2059ead7ff0bcfa0897b1606cbfa559835b97f84","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.9.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.8.0-next.0_1609276704223_0.01770628034145516","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test.326":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test.326","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test.326","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"8b8542a624a5f81ee4dccb936e2f5927c2771a33","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test.326.tgz","fileCount":153,"integrity":"sha512-ZF0JiHQ9hFyFgWXYCM8Kl1IJdAEEhXMO0akcgCvImZYv7VBgjU0bSfM0uEbONXuWyCCmAMs3QuEMEYUIfBxo9g==","signatures":[{"sig":"MEYCIQCezQJabubmMe8ASb2Z+uhMt5QMb6tz4PU5voHdsnuu/AIhAL69Lj2nQ0h7M2DZInAl/8704P3fTuhf0WJPY4lh1Beo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7E63CRA9TVsSAnZWagAAS/YP/1CzMqIRp9gppTYD6n1j\nz+0cydxiBsLZyg/eq3cVffACbC2nIr4T4XMeFo8LqhTpfWmWSE3khl0UMK+O\nJCsNPoCGvbERlZrY4hgXzREdcpueTgNG9xIUktjuG2BASxl8xL5DjxdHStil\nTuhy7HrY0uFcKQ3evF3VU57AjC/zWN+YAQ9y7bmaAE9YI7H/83eijM4CgZQX\ngzfRsZRmdaPX8anfUk++KNmwtIb8S7g4+NeZCM5SJlEbeYo3Zkv+qE9naITx\nfXdgX7xa92TU9GhLNESmEDDFtqehLEKV7klIYPn77JmS5O99kw20TSM8JPDI\nxQkc73lp0ECZLiIkSXnBr5z20u++Pf65XuiIWScJM3vYCrKi4z2P/vvTDnL2\n5rodRl6S4tj9ukO8kVn7hacmGZatAUGrpBxELD0ZWQZSmh5kbRwCs0JKf72w\n62WHZbPU1kfIwecsI1XIyZW8fV55gxkkdPr8Ces4cFRWsb7wDY/IcT5R8T/a\nqwIacGu6Y52UhiYMgaCEfd0ZUj2psQWwp/RUjBvTKyx87jyGk8gftRkQ0qlx\nWpvHFRKoXDSu5V2GFFtd0F5ZQcv2HR/q2xX6MDHsQ2XN08E47V+94tTKFVr1\nIy4wbphmgiGzpxBkVyq/Xv2J1JdeAUeiZcLNvVpb3WbMIr+jnfMDL7WjeMeB\nd46V\r\n=+erz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ca000fe2162b45bd6477de9186ebfd138d407571","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test.326+ca000fe216","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test.326_1609322167101_0.2424661074559118","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test2.326":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test2.326","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test2.326","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3effa7532218cb8d3f792b38e76ef17505f0a79f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test2.326.tgz","fileCount":153,"integrity":"sha512-jQoDtcwmNt3/OxtXPOGLMG6bGMXURAsipj3XTJRDbzc4/iO2pI9dBJtVYHVdtL6LPng/4s0SBsMyBp6BxXJOWQ==","signatures":[{"sig":"MEUCIQC2z8nkZA0UpkmoZkjCRIOQxKIbn3Hl/5wYBxd3D3123gIgMR8PPxPRpstu/i8WXejhLMXxlWBm3azePNNOUTOUOBY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7Fb0CRA9TVsSAnZWagAAfHkP/j0+5xPj0KhVGksdnAoa\n/6+4iaOLKwxdPK2MUgp2Gihbb3Y63UVPBcPbVRI0H24u19gA21f8MF7bAh+x\nFBwtZFzadIDlrx4sh/FwznQ7ok7eXyavOOAwxZqLCS28ybariMCZTRlK1cpF\nYLYk0cNJVMbZmJKXx2r9SEfbV81/UNrHXnyjg/h+7xgU06MDMYwiaT4Jzwdb\n86IiBRCxvijEvCFtTrdO+neTSLoGprZAn2I9g+DNDwz+r6La/v5OAarpVcVN\nxfc6VR2aUaYFjI1S8bJH3a4Dt5Z3i6OAfPcmjgQmrJvLFFRNZYfhpqPWxYCa\nOihWjGbtEP18+dStTLiJPtvdm5SMQh//y6jIfWxJkt7jBDuhEPyKRNTN3mkr\nl8M19FJvJ1aN73Qzgn666xGZHybTIZzLkuRYmCdRVXZLU9V3/zUUu1QECPL5\nb/tMEWEi/u6+pXmxqbNIHcrjtviJmUTgCcQsQk/RW1C4mXUwyxR+p1/mJfce\nsyC35uf/xV9kFiocGRL2upLHGuW4R31JjgerfGf/VqZoxGJQz2+kLl+qX7w7\ns1J+X3AF6Ve/+PBaeIKVFUZdYDzeFteEiQZUcIYM/TsI54FE88kVyHdcqeOa\n0nBgGCRZkF8/qiM3DwD3qNWY2cyd9NSwDis4PxQQy/lwDbMt6MEYZcNkeYM4\nvVSM\r\n=drvS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"103c90281109e79e0af1e2af1c62725de9189add","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test2.326+103c902811","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test2.326_1609324276285_0.33707304713436237","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test2.327":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test2.327","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test2.327","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b6301abc912609aa83302e2d70221cf4f5c5b765","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test2.327.tgz","fileCount":153,"integrity":"sha512-xKXjzpdAFESlvNI/Gw9idJgV+1svSzMQSqnCvUWAabZuQMrmxhJSaxO+E8I0C2DTcQ4n4Tw/zfCL0NSc1ZQT/A==","signatures":[{"sig":"MEUCIC0ydikXUhaAn+IbtvM00SG9eKu8irnDBo6QqogGs1tDAiEAozyBQkrH+prrZpiAiW00wBrwgMkT+wNEPM3ehselP1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7F8KCRA9TVsSAnZWagAAxL4P/0wSKpoSdRSn2zBsJOLt\nO2yR7bDIH4fbPWIG3NaxSTsl4Y7vBDjgXLiys59+f/UjZYXwT+XTNR2lRrMQ\nqMJ1Ihq9IddWaCHvSLBnPLHdK4Ue/7WlDPvKVlEf4W5sD12nNZPLf/wl5lqq\nQtdaen+VM9aQkPAoiYMdl2rke9SM+Of35zlV4p1XECc/nsxLEiU4FMA5+oXX\njbNppTrtR66pJoGTNWEz0gg6kMz51cG7nU3VehJQGQyBzIaxE8FUgl+BOFnU\nMEmVCcfPVR9NvYwmkiT5g8a6VvAFIP2zZj0P+bCoYqzrNXmb3psKok7es0zl\nrMy9cfeUm000Lyy5xZXsq7akeXaCTlrEwpqV2LmLLUZMDPvXHkd+9k2oZVBR\ncRztHTTU6Y6EIqt82sgESZ/5nuwGwGGRh/eaW6h6vxKcz9MB2TT2jL8dqaib\nIHCV+9ax77d6AUs93f1iu8wHEBusOhbrDC0D81sUkWCoCA54f27xwPQ1E0yf\nC/UQdvFx0rcU8lHa5ZxDVFJfOgTVULXGWQt08zep5Bwgou6cIfQ82GFPw8si\nNd8sgfUj1S4h4ulp/QWtBSwvi0vEh9n276W8JBWqrvwvz2p6wlhv18CMLPkU\nvSzwtktMtLSZkxqyjmDqX0GxOv39ga1ipg8JRSkRJgmKdmkaoF8NtLRTrnLA\n+zPK\r\n=JwZv\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c378a3d13103762a9eda0b7edb0a6b91c1d55eda","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v10.21.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"10.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test2.327+c378a3d131","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test2.327_1609326346258_0.6577871667306545","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"gatsby-recipes","version":"0.7.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.7.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"57d61fb67474f36c32a812135e0467e29fdd85c4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.7.0.tgz","fileCount":153,"integrity":"sha512-AUYmzfinmsTO/SOPMWRNlPvcso/Yk0mSJxD0aHZuR30RdRSM3E9sP9l5W2wkCb0oQ1r1cLkWTjjEg6KJXbgQMA==","signatures":[{"sig":"MEQCIGJMk30YwS/W48466JFZc1SD7JEhboyDuRXilwF2WGnAAiB7+3dcnm5b8Kh+/PTduxoUloA7vwww8bEZps3bkmmiPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9MEbCRA9TVsSAnZWagAAw6UQAI0ZkUPbpDIEXzApfJyc\n9BUjPVupQ/Gx0mgBGUDNpkMi4wJbSscmY+Vm7oa8V2/Bd6SA842o8xs3k1HA\n8ZIsR3N25v2VGyJJSPXQhEkJLPIL6RVTIfBpWk6fcJ33vPPekVx8sx6NEvRL\nG/5Jf+JINLX8ua6BGOQ76D7N+0f79taCjM2BwQ1A5iKKyqXEnAGEkhkCBlVx\nqZoL+9e+y9blnXFch7bXBJLdzMp+Mj/+FhSoKP+CJktywapdBRYqbMYP7gx7\nuxTTcFoqvE8LlMGyeip+hFA3ysrJ3vnBGDZxFQBl3FE+n04hF0SsIO77mbs/\nTnHwoG50lLi3KTqk83BHh9PCPpdyCCh5hUAcBx7jRMt3n+ZiihAW57BqwkHz\nNQ82cls4hOW68PcmSWMDmbqcnfF0wKRwGXUilE0zsNEgcYnrfpqVl7DIUxBB\n7EgkhbnXRBCOOhQtuhjW1ox7XiJlDUYQ71NwJStlLfIEz3ZkRBKKOx7YOBec\nGN6S3A2HIH3FbURU0j98yRO1pEg4FErjIetGSk6g1pGtC+RoIdqZVNXLpjFa\nPxL9Td8+sKX6MWvnoa+Uawo6P52S16h9bz+PRCl4K4AYEiu8JHWPiBaHEIOw\nl4ZVfPwXn4GklJyjzSAcxAMWK2Vb9XVxsbfvvI2GRqpcOiMOqqo9pc9aEuqt\nBwMd\r\n=f3zP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f8cc2a3f02f621f20af9b60dda6f1980fbd37a05","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.8.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.8.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.7.0_1609875738625_0.7780157154057645","host":"s3://npm-registry-packages"}},"0.4.0-telemetry-test.373":{"name":"gatsby-recipes","version":"0.4.0-telemetry-test.373","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.4.0-telemetry-test.373","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"818845e30ebb6d4be436a38240b5e58d63ec207e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.4.0-telemetry-test.373.tgz","fileCount":153,"integrity":"sha512-QRQzu6QzeGW4xCyLw+ijacIPxJyvdvH+q/NfiZa7tGCZ+b1DvluQjfoZ7oJJAH7jyBbt4r8WepBEM/Vr6a9RQw==","signatures":[{"sig":"MEUCIFO3nfR2yWD5c1/4cul7GoSWjpRVZwI88aHr0XQex7U5AiEAj71QJCEDOxwVPzkCyYehcJXx22JgS/hBzp7xFCJKyEQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/EyhCRA9TVsSAnZWagAA8B4P/2gd4baKTVBtmzqVjdfp\njxEAQOwA3C737iUezmQ1SipZcV1/3QI69tA2fKWKbSEzJjpAxTX6jaNRjUvP\nNF0BItAVioTQypw3kAdzaEZllc3At5T6i2oCGvW+eV9/pHqyJfPSc/+2szDB\ndh11W7nKqnJCB2bZRspoxSlcRzq2053MVryl3hwJtGXOOj6Emz9JydrmeYO1\nVVJ4pANkYrF2QGYoe8nh+ft2GHkROQzzW+QI5ufXHI5QAOSCIsmrCJ1lw8im\naaazjCID48oQ+KHQIjPrQJhzYH/T6CZAseohYL5mSo4tSiVkf/aA8UaRSn6x\n+p5z2mX8sHb1xv5d9EfC2ZcrI26wzmG+1plUnWnBVpE97A7c9ZViXiQMgqBP\nnX4JcqQ3+V5PqHFlj/pxwabwaJRMTrJkrATiQQ8Ah8z9Yt/AZY24OvMf1jJp\nbz4SwfB3BRgBOnnqfVMIHX4v1/FaAe1S44BTLe3+UM/QneT4OM7IckNMSV5N\nUF8DbV1yGqgs/Ke+AmTMX6B77dvZeUhUHRLMlqwKsRSy5f/pSGsB0WOiOdIP\ngOjGHkdEgNF3vusligbOmsOQ95a1a+LUTaAjTXobN2PIqz0ciymBv1P7zRhi\ng2dZL9if8uwPtA4RMKCJ3LpofB79RE2cX02OsZXCi2hRrsYmZ0m/23bOdMzG\navj1\r\n=CnKC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"90ffaa291c577e615db67b8972ee5e37bf2d198d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"1.5.0-telemetry-test.373+90ffaa291c","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.4.0-telemetry-test.373_1610370209223_0.08417311790332271","host":"s3://npm-registry-packages"}},"0.8.0-next.1":{"name":"gatsby-recipes","version":"0.8.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.8.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"bb71de4ca1cde4bf94c5cd2bad9092af40afc0c8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.8.0-next.1.tgz","fileCount":153,"integrity":"sha512-3nvp4M5HzxJHIAiwBVjMaTsQTPp+Sk/WQmFgIZioecok23uDRTg1YxUDT8MD7A1prFRrNrRy854lEUlzERSojg==","signatures":[{"sig":"MEYCIQCkhNReRq8GOfUFM+hcPHErzF7KZLccoH/heLeMIlXMVAIhAKVPhl8rA907Sn0ng887Mg7VUfte6dwls2V3zuGXJyZh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/gCUCRA9TVsSAnZWagAAUlwP/1EDmQhCLz2QZZogj+Bo\nxkjcjOFEFH0Yb6tdBWxW9/oSXroBQYrxWS6hexKZTh2ZA+1ce5PE2h8dMGre\nx5AuNIvUr1bBDitP0/1CNz2QcsU9ip4EOmWmP/97I7mqARk1StpqjWDQZz1B\nVk+KT4w6/fRDSE33rIT4Twc0QlsKwgezDOAqqd1SxLZXLvL2VHkQIfU3LGCH\npeEUVwLiw8VmWqyBBkDQHaGEOSdLYP7agJPnsdTyjIn9s1bWWWJPRlWcOkCl\nDIib4ty6BLt2ZjXxAtQbYzicz8a1gXJYhHIgBkOMb9Kp1SM3U7vXNcB9Y0Bl\nxle8cJmXA+c17HVHwXTkJLhr044YFXo5JmY9UsN1ZzKB8PfEZls0c5WbUGrP\nip6N0+8CdyHmO+xrR+sZ5t8T5qm+YKwg7Lavdlt3rZniwb62NViX6X2BGoDG\nMr8CrEwaYDBgdd5z4jSUuRhm0G80IMYZCnbVfHUC7tD47bBMGTFeCqBO9vOS\nEaKhfRndOXJefJzv6luChb1Mr0c6a1NFWaE5aWqs4Bh1x7/KHmfUksdFVIyj\ncuC+i4H+S+MzEckpasQPV6tQDdQsxCGzjlQP+g9GBRp32CYWjxhynhFBuaNx\nv/kwAwbbn8rZN866pGe+Wn3VkbBdeNBN7O6TRYHbdf7UzftEXbWg5CMMmo0u\nogSj\r\n=87bU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5e5c11259b1ab38a2125aaa97e8623bcd0d1cfff","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"laurieontech","email":"npm.laurie@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.14.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.14.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.9.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.8.0-next.1_1610481811267_0.6758406473059717","host":"s3://npm-registry-packages"}},"0.7.1":{"name":"gatsby-recipes","version":"0.7.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.7.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a9abda5dc1c6be55858490cfc0aae3f3bef3920b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.7.1.tgz","fileCount":153,"integrity":"sha512-DVamMJ9dIxcdd5K9F0WINEhfZv1eF4ls/t4swUPsy8v6kQB8DC9suYYCueyFZl9waCR7dNeX4jAPs+2Z7eUeSw==","signatures":[{"sig":"MEUCIQDeWL+WF9QIMYLknzt2/oYksGjit31q8AZyCCClPhY3hAIgCxq+iA2p0keZaEOv3KP+m2E22X9fluNVYAI++k+Woqc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5575465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/tDhCRA9TVsSAnZWagAAQ8QP/Rfih2Z1M446toVuTqoP\nF19+u1JAymBgrETGg1JS09ctHUwSTSQNx5bR7ewQDUlVvLrD/SNraccmrpnt\n6pCtIwIQ6MFDq2IyUEHnqtyzjjOi4FsNX/uG5DBuaipp5p3K64vVaIk/gLUd\n0322+H/QG/lNdZmypJHNV+x0rXYur2tP3y270I0vUBMIJT1JHKfeZ9qC0tgo\nFT6W6BBymKeHbA4EIyMBafTTGT2I/ikqyEdqgMQ6w4nykFTol+ze1aw5z+FA\nzsIcaXwKYTSkpwYdyoWBwKBHXqdrRPUGL+3I1Ri2k8PNQBc5IUbK0A2pkMN2\nlHO+8iehvHxuzBxjLkwcjcgbl086auYEO16i6ch391BpdXyd/kYVozCUIuh7\nqrftlaqS2U62LwZn53oqwPJtv0SbQPpgzYxw8xjXoMk5V/+3buau76NT/jsS\n4gkzazi6yk0UtH2z/kh9UpDbrGMRnMWRZb5Qpifj+vUZlhQ/Tde9Swq0lvat\nWO1H26M2ZyI9SWo8/2+WFOgDghl2jwnHamguLxJL3x/0EPQSCgPKhpGZRy+P\nAlzcV6zDzbQKSWPcO53Fswbs6jqJ93jnb3mxqAc0mPEuyrAaNK5nWwGgMJ03\nBzk+cHQwCr0C78Zj9/uKuVNIkQpw75gQ+Ycqj7tqFrYOo/qMcuAoV2MAUiAK\nHTrL\r\n=gv55\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c15af991c3354df6ee055c6a5b60c6b047bfaeb3","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.1.1","execa":"^4.0.2","hicat":"^0.7.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.8.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.8.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^5.26.3","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2 ","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.7.1_1610535136931_0.7653698905862083","host":"s3://npm-registry-packages"}},"0.9.0-next.0":{"name":"gatsby-recipes","version":"0.9.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c5df7f5b9469fea85885c7539fb8ee104ef94be6","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.0-next.0.tgz","fileCount":153,"integrity":"sha512-bVeLssmZAnJHrR42CIS0OTquq57m6M/5kaaET+8afbBs/qHedbI5rsS/r/dCUDGZgzwQP6Cs+SN2dTgW1/AodA==","signatures":[{"sig":"MEUCIQD1DAjqzUu23tlt8He8blNEKJdOo0YdvDtKpbZAbkxFqAIgKEQA4dN9iOE/ijh6UZwyODsqfO1/J58yrxNprbh8/2U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5516764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBeDaCRA9TVsSAnZWagAAz5IP/2v06KwPOKpJYtPIukkA\nbSMXzp3JVedf3jaTkcXd1GV+hoh210wnOmjnb8oVL/rXiqpKZPxm4ZaVnRMf\nVYi/vxBAmJ53sDRicHryGyk6yq+xRfji0to4MltbLD5ksQ7TcEzwrX86FCwA\nbi19rBUZsAWiiqiFYkICejp9dWsj9JX+DFSiAR6kpIH6b0LhSgownTY6Kj7L\nj50vqYe1gPxXAdCuyWV8JO38y8DqAyWlTrGeuK6QlPNnxpQ9FUVxBTbia7yn\n6O2XTRshUC5SH4bzmGjprsSQUZtozIjVBpBlfXWNdH8+hwc2TtkkCgYN5HKu\ni/QF8d29idTOrRnElg5hW0TY/vISvn7E5PYWwmQsIaOCBREJ2C7C1+y+qG4U\nxtkkc0gch8UJHflaYMiYECfs5F499GtZ7bh4mqTwskbXHd8tWiTo/om7qjwZ\n/jIQjmhuihPWRLzW7K5+Ef9NsdzJdt8V4qpOIfvNvb30TqNTkIHmJL2AXMAz\nfe0PrRqZXodELyzrKKns+aQpA8kgfT5SYdPljDNmdT66NosP/3wmTU2650Xl\nAywwGUQLGNbZNNtrp5/IC6OZFtSjlDJ0mQWyuID+71ZGPstkmDSGvGCL3NAu\n/4HFBOdogfE1R+qddhMkQHbbZ7SgxOHyTjZmLdIDqJtZJLmaW5o8r2ghaVnV\nFdwt\r\n=M4cU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"d4a8ad26215cc2189d6473a657e0ae83088effb1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.0-next.0_1610997977971_0.920536047848298","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"gatsby-recipes","version":"0.8.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.8.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"73c49f12118753ca4b5eb8944e6efef4b736dcf6","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.8.0.tgz","fileCount":153,"integrity":"sha512-AkH9up3nbEf9RaSCkEmPxfpCa7d2jtXVq23e27UsprY0H3sTEiydxWTF1f5spxEjfH7yzZKpCoN+MyfZ/ZZGZA==","signatures":[{"sig":"MEYCIQCjWLvHIWkDyb+IZ7RzKwGFTDvol4dF0B2WYzf5cqXcnAIhAL2Iku/vI7qjL+uIVHZ4vfWcTVVlHJTQVSsKjrSN4cMb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5516727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgByjzCRA9TVsSAnZWagAAXLMP/1PgIWBUZI5P0Uw2vaVf\nT3k1Atwc9YJ8u6uc9EpKxwm2wLxed7nEtGExdznILOYMtCXy8JsVgOHD3E5u\ng0GlFd/obpgaGTLAEY7iV3jWfwUmdjdjGRRaBBPpTB0xK7uGsoVN3az9R8Q1\nqmvZtQFcwxEBKw/D/wfO+lKlFPC81h40gPsKhaAAn1p47iNnHer2Xj1pGrlf\n8LHcQ/Ob+KB0WL2ljFKPLHwAVdxL0GEFKd+c1x8NCJ3rkJJAVTQQyhlp9idg\n2ieXySWyPjU4WXIbzYk2UlWN+MHWCTPyPCo1RPYiwFM9EedBYHASA3WETTYe\niqmNZkcSs7HWCZ1qDjKMSnziDg76HgEFoIfzP5cVqHiq7bPXNmT9bpo3OXxQ\nJytYCR3NXQuIXRdmMiNcxftscvej0I2V67htYPONuGNrSU5U/BPAx5ZBn7mC\nbu6+6YqJTHTWhjBAAq7TJCxG+93bgBikSAy8WRfa7Pnptxa0KjvzdApHJXpg\nPngJojrCuIIqCj/BT7WK20KQVMygj/MioKkeCffOejMUxA+4oli7SAOmjiUg\nS0frSaOXUMWu1+XMl8CKnaOylE6T/zTgT2DApeo08Qx+0aRQm59B83Gne7ap\nvtWNSgXXXXpWNTkm9b4xfzEB/QOntiCMUs1s8JfrcytLv0Tmk7yjXIODP3DB\n/NOd\r\n=zZud\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fbc58933c6a6d5d8837e36104fdb74a0cb02163d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.9.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.9.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.8.0_1611081971232_0.12773525829686294","host":"s3://npm-registry-packages"}},"0.9.0-next.1":{"name":"gatsby-recipes","version":"0.9.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5a48fa8f97f55dda92761bb6e954858fb9976e2d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.0-next.1.tgz","fileCount":153,"integrity":"sha512-tH4SjP4yf6HTkjkKWnBv8BLS9NeasVyzH01qNkfDJSQszGOgjEqF5jlsM2xhC2HnTS+u3MtCSJJAQVIVncZJOg==","signatures":[{"sig":"MEUCIQCmgIJy7+YxpbQ+mQtYPX5d6YirGiL3QMO7rZhHmfYT4wIgSwlC+fHP4FcmB6TtyIVQgnun+k2gSeDoFXzd1QPwcBM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5516953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEET4CRA9TVsSAnZWagAAYZ8P/j6XLbx7qF8vzI9CmLSW\nHHg8aS1HOZcasyonI4AWa8dm4TWnnVNoow8XLHJEmN6qm+toSAElpVbuVjow\n1jXrUjZCmBsAfrz/6QLRbkpe4JOX8BvuDLw+2SsqFpFfUK2JLT9LgGJKsuzt\nml3qZpt1uVQcDjIQ/8jNwN29rrwL1llHZCfn4serbbEOS2Km9HsvNE+bb4d+\n8cro6tcxuzcFYJFgUdOI6ONa10bngmn9eEexNYG9oZVYDNfDNhPIJaT8CdB7\n5Mp4PEDA2VuuXqNtm1vueJJ3MO46MkmPOZSCo8FWA6BEl82ORUjwRDuv05BN\nLZtsV7GcQfSwD5fVAL5/QVUiMe9xaABWdJXCI9uH9dWiVYBoFy/cH44el9Xg\nPfd5VQzVB+tD5rzhGOEbSGKvdkp4mL+chnST/gyYVYfnkPf6Lfw0FGL3VIlA\n2DnUArps7c3kqkc3ueUQFsdgbX1FgrJdw+pYEfy7rtW8W/lI27FtHBnAVuC+\nnYiVsQCwp0Pjq0Tvf22OwsrRVdO1WqvD8UdO5OCXDuJin+xS1ajjJ+j69TDA\n7zfjZ8CuKsGBgFEwrMacARllfV8mzGCf0AA8SBjDSMfJjHwwVn4r9RapyDAh\n8vXJq407OOzRU5zr5dmc02TQxa+8w8jOvUnf7nt5zED8NVvpeIm7yF9wrAsm\n+8sN\r\n=vgtu\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7ce988eee6479c531999d422875d878d64cc9463","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.0-next.1_1611678968276_0.8237958431956869","host":"s3://npm-registry-packages"}},"0.10.0-next.0":{"name":"gatsby-recipes","version":"0.10.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.10.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e79bad62ce70f31df6b9c0aac5345706a7fb7e07","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.10.0-next.0.tgz","fileCount":153,"integrity":"sha512-1gXQmgAavr0pW2LaaWJWKBgNDKjrqKC7yT1GX3KH9HXICXgxYhsDregb315EGr6sth/k5/LDm/SLXFz/fzx4lA==","signatures":[{"sig":"MEYCIQDRq4DoWKB6U150yEUzQVLUE4EB3qqIkNGwpEgHGdSGLAIhAKX6EGSMtCY9VPX0QxwvCxiP2o1KhsCWb6p7IptJgvz7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5519669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEueQCRA9TVsSAnZWagAAPgoP/1dOBiIuxCGbkH0+4jjT\nBscn5dnJ8LqzQPzW9rBCyvOE1T8gRK6y7LmP6lPJ1HFx3ACrcFtmpYLbMOvc\nDP+PKBOU/o53xLzg+JL8GCfmkFaAOfMntkPV/91qaqhF+F+EOIZ2bwxU2nuo\nH8jN3UHdvSY2I1W8+pzCm7kMSwfYhV0NftJim504xkxaORJdBoiy4Yi/RtDQ\nfidUqkqH3Dv/wld5h/lOWYfP0YF+bER+fVV3bIDJqcwHvzAr7m6xGuRSN65y\nnEpZ9kUTMEXU1YzuIgvP7YxBuoCY2d7ial2zVuvW4M2iJUevfT4fDIL5zMGY\nob/b5KJ/aP4j/vIBpzBzdoF4pDHaB2b+3JgQ8CUC/5SMALBCVvGBUtXPGs5W\nDP7zQ569lhMx1ZVIxH+PFIfEsi3YemchaB3f5pPLurqy9EOTAaPml0+WxinA\nenGVUVpZt0jcXNu9RXlvRZMXFajXofg5oVrVYSwdmq699waMOzrE8Wtm8sXR\n5+3LvvE7YGu74qRQmDWVvHg5mlskRj6T+mms7PgnoGHO8rmm/3TVURolcthS\nltWtJXshjLkVLdjqZX9j9svVa1MObVqH+gta4/gDUrr8gtw70XCdFcji1Nx7\nRxTAFIP+04EboQr+36Fs2YSiiEZH+3PuJ/thdykjGPbfjn15+0nlr5+MEVwv\nTGni\r\n=dA7g\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1da331a5352e3f7cb18f69050b7199481d85fbcb","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.11.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.11.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.10.0-next.0_1611851664157_0.9895705248045046","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"gatsby-recipes","version":"0.9.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"da439b1fdf7d93abd81632a8ec2f2b86cfde9ef3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.0.tgz","fileCount":153,"integrity":"sha512-+Kf5BBJRH+UKOeb3j7Y5c5AW9/oiL7enebXo/BKoPEI22nk97fDCB5p1dmAzo8S/WPODV3T/M8sWyvY2spWH2A==","signatures":[{"sig":"MEQCIG9MR0lvuNluAgpMBMFRB0rDh0HZJwxY8KyBqzlZvJcrAiAQcincwSmbpE+h7g544vrj6/B9l750ajg0o7UFFA6YIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5519631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGYZ4CRA9TVsSAnZWagAAp+kQAJ9X62VaH9mA9vjf8waL\naIoO7jtUyR5/xiBEgeSFpUzs+ZiMoqBMs+36ihZa+Nz3+7q+H/NewgokDDo+\nceEMZ7OQrbrmsEIcYwFUlKnhjSQt2vKObnQDNtMKjACd+gS45LCDaTb2AUaF\nHT0vpR2xqy1ppjBUUq37gbxhTV0vtwaCYAAuraY65r/WSW5uNqNg7waSOwmm\nWd3hlziaW/uPYiHX5VGaKBBvjS55o+QWExy+KwglvL6JndO/CY8xuTyD5SJq\neqSZ77HQ+dDB7ITzop3XSrcD7zGkLTWi1BtADMz5d9iR7GX6MZ+aQyQ2sRIt\naOuYu/bl5FIZ46x2+1X1OdkCJJU6NEPLC7tKXmQ1XeaXTbKCt4hv58SVCc1V\nthcv5Ki57V4WFCs3ABI6Plismw7+D2G/ERx1rRidDVEB07ZAXP4RGGgtKjYX\nq/QTFNbKFUJaYegmmVmwDa50k4gNqRDE/IVo7Z4tE2TBMmMbA/UMUamN6KzS\nJ5Hq2damSvQbOiITcUkx6K5/VRMuqaJRJflHzUI2XTlSOHQ/QMB9L+GsTbXb\nSVN82FmnJee1EO5MeurQQlU4Re8ZarVlhxjlNtJMaXCJy3VpzU3MJOnLEtTs\nRpa7eTE4ewvUrYM0cnIZtAzwQZdxvkITfM7QRTQ0QrSVAPQyWKZWE6JQPTcG\nhZt8\r\n=fjl2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"7797522184600284a44929cad5b27f2388eb13ee","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.0_1612285559341_0.19457298017924707","host":"s3://npm-registry-packages"}},"0.10.0-next.1":{"name":"gatsby-recipes","version":"0.10.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.10.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"327deee5a6b1a4d5d7218acf49097c9579ae1bd7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.10.0-next.1.tgz","fileCount":152,"integrity":"sha512-FCwdIMkiCKKa8U3l739R8iYg9HFVOGOh0Hh0i9dZSZatfFGd+EKHM+ABRkAxyvBHTo6zN/YfqdQUJiXlq7Jbpw==","signatures":[{"sig":"MEUCIQC8iz50rCjRz2QY5Rc3mi2M1JKyMdBfvxxwuKpJ/1F7KwIgVHVJDzVmwxY+1rDn8nnkttkKcBKglPCgh6pCZgoOkcE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5516968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG8/cCRA9TVsSAnZWagAAr98P/2frZxLCdw+my9SMGCPa\nerJdz2pXvgc9TYTsm9iaWIvZk1rS5qEY1mUhhD3b0+tXYs/PXBfdpY65jhSv\nnrYs5xcua8atG4FNcUbaBZvix2RGtH5aIOXjzu5e4E6RFg5aSeE86ceoSI8p\nJ+Zc0ACRIPuecfTL6aW6wsBj52QJtraRIbH0UoaIRZDDmKCHoiTa4d4VEZtU\nIT40NQRovBINjdRcMpRinjdKitjnxqdhSm+O+hCutiNPX1dnuFBeUc4rBJ6Q\n+Zb3AAVOZ+Ne64QOgVZW9PCPADJcMPRNUSd5GhV5Qdq/3d8aWXNPvEwd874I\nmOuEU/JWakcVKfPysG0ovHVBKbYXlKzphDP2V+f/WJxX8n0tMr97E0VRb65P\nvK1DXouUL0eRYyo/bVf2USkWpuVB4h4yTnYwcukwyHGss4xYc6djXrvsxTGE\nsqiT8gDJ2/ZGCloBX/v6r2S3YbpY2WBCLL7cBkkcSFGWYZt/oJ4A1arrH9f0\nf06N/2gs1qnNWW/WE3LZahodhRSn+MlmZ2MwXhMOzEPcF3l9GZNA6ahyb4LW\nPdeLld01x3ze3v3ZHnk8l1bIRzAiY4/5/C56XhmgH0RMvVqSsE3dfzlfgIN9\npAuiXTtQa8UVJbpMhBeqf9KWbb2u0FbAw98K44gRxiAJ53fmRfEabo6gWvkQ\nCIos\r\n=2XrD\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"77f7487bb250275cff8bed46befa24e708189df9","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.11.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.11.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.10.0-next.1_1612435419818_0.03094590874193548","host":"s3://npm-registry-packages"}},"0.9.1":{"name":"gatsby-recipes","version":"0.9.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f1510068223042f2ef6c8961f44445f35b611e36","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.1.tgz","fileCount":152,"integrity":"sha512-L0PPLbGSJxee+sR8hpCnoZOFSuKPwKKwwTDRohGOu6CtBN9LEdwIcLvwt6/9k7XmeWB32oUTHTnRS2zG+8rBxQ==","signatures":[{"sig":"MEUCIQDW07EJfNiDgXVv4c3HKX9knQnK74d9YeLu2qDLBAyGMAIgOYT2tHqUNVC6ZpThcpengr+tt14yc5S5hC/N01zzuNA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5516907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgG/5iCRA9TVsSAnZWagAAHA0P/jI5CB1ohb7wEhItbnWf\n+Z6LIoHphQ/oNbVAdZbBC2lg2+hSsKf6u3CaB82autB4XcKrGUu86umEmUer\nr9zdy0sCPy1NJN5ENj22QLPmPldONBPxL9Polbx98XB8F92QSZ352fyBS2P2\nNnT0mgRbXUlkdSpA0DsY82qgrRiD1X/BPqurjGjmUmuJjOzQPCdjAcIeNiZf\nBhRxA4uCUA9UAi5oPsCcNlLD44JhXjFUM7I6N0l1i5zUsQpp/z50UYWYrUnO\n0s8cVxhykKZRxZhd3lEgNKvAKeqRH10Lor7ysQiCTASV4dzn4WJrbauwVF1D\nsRLsHeYhbUElvN63LBFEYpgCvdtMWyN7wubk91g1i+3fPXTM5T8Xx1l4bhYO\nXnqRXsXMTokVQ11mUIPOD4rSGNxF3hZIZkI9K56ko10plzKMfNZjKX0yd3zk\nxI+xwI9zmLtvBfUarZDMdf7rLEbNbXiudpS0dpJx09bfpazD7RMKfJxJCn0B\n//hyTjvHcaHXxzj8FAk7f3xxHSJAw2qquCF9myqLlxNM5ueeGXt6GB2hrwiC\n766tMjb9yx8XtaSq0GcXe70D83+iT9uohTYR2OH4L9Ci+N6PSdO7hs0xti0b\nIOuiPvwrnBQnOASUccsmqy68qTAd+KZKlwlWwZ2WZkERrFo7jZFnjesb1rCs\nd4Wg\r\n=Qr7l\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"4432c39ea38401712b8144bebbfee643460fd29f","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.1_1612447329793_0.1378443301396719","host":"s3://npm-registry-packages"}},"0.11.0-next.0":{"name":"gatsby-recipes","version":"0.11.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"14e8295e36acd40e255ead44854a540ee48ae51e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.0.tgz","fileCount":152,"integrity":"sha512-pnNMHMVZHRIJ/ybcaz5X+6V1pStYsx711dN2TzKDYni2NICfrdDCb/9ViADuugq+qROU34NoItzzhx+5LEJV8A==","signatures":[{"sig":"MEUCIBk3Qvod+ST/mPdp/uFTF4ocy5J9fq0PXXDf9bX8lmtwAiEAj2HUec3derfDC2VYbmY4IO6ZRv30edEiDxOw4bp3CdM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5517158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHTbmCRA9TVsSAnZWagAA+1gP/1bNkEXr7zwA2bp2UvIK\n3BweXpNoMSo+Brc5I7fXJ1fYgD+cEgCoOX5ULOfgjETTFqRXx9BABZt2ot6K\ne09bFdnBul8e3Lm9AhxCMqqwZIb4dwLrtBFUA0UdpyO9y0/Zzn3oBvrFSZA+\n2eHCKZ5zWs7QL75WpZcsqXWpumA0myZWvO+YWdWG5zphCBn9ZfbWLzcAV3nw\nzwzHrpK/2roO+WhdWZkoSLVK8bLmiF8xTleW7RrwhukqdpKd83EfExxe5asg\nd2lbSn8efpcrNiHWIJpkZrYgKBHNj7WGELmvmVNpxfv0L8SlSuucVRLcHoY8\nD6Vi2/NpsGgPrkS9kCpppdzzy51x/DkW/ZwpvcZbF03OJz8ute0nHmOupcZH\neYFw5JZms1IPvJ5a1xkx6yncpeWZp1VGkk2lcBuUmzHfb0aOQTkp2V0a3Y3O\nI9SYiqVVMllSv3fBgnpHiI+30DkVnNaL6GVrwvSR4Pc/0xt8sLVMZROSdoWK\nYmNBBmvsudiJWCzXEpsTawb2DLgvfNHV6kV1NIYuLQmmR8xshTzsFsVsjGDv\nqeDjEfoIm1ha55tHKlQYfmuBgfh3nu5IrO0z1m+Mw8t///ERS49S5FBNSyyN\nibTuIxI5rMbwCuMK7A1ybDDRUtFtuZz6xVE1NNtoDvUQ6xQMZ8NFHniiS8ka\n/Knp\r\n=twWl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fe4cd06c71942f535caf73c0462f0d5b7dd485ee","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.0_1612527334056_0.166964803573042","host":"s3://npm-registry-packages"}},"0.11.0-next.1":{"name":"gatsby-recipes","version":"0.11.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c0191c5c8ec96a3c272e7ef265885f53d807e539","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.1.tgz","fileCount":152,"integrity":"sha512-WxmlhsA4JuhHi9+LdkTk2+cGlQddy/19QQNj18CzjlWViAp+HTwQdRp4UwEH56ZLC25Gru3zZEmRDpdT4OFIdA==","signatures":[{"sig":"MEUCIQDUkg5f63AKqlCMh03SoWABUiGX0txK2EzQUGJu0TN2oAIgY+Yt2SpujqacZYqxzaJMIwjqC8cH0QtjUt/9Sz9LP2s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5563443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJQEYCRA9TVsSAnZWagAARckP/jfUmVA/nHPYIYVgPKcx\nN259kO94vyMbPNqrnbGuegErIuriuGGekbuFJcRPp45qVRITxmJLHNcB5tQj\nBsZQ21PB/yzhFC3BUzVzm7/1Xs0AOf1/09RSm5eOPclBHFZTMpN5H5vUAoDE\nM85SMuihEijwpXWBziXeisRI/YI6VLJhlIA8SFVdARwgux7p65Uek9cx/QwY\nQEgSSMfKstKDjrEF2DTEuajUsY9Tzx6ItsfrU2Tg9apOzmlNAB5Z1VDblLGD\neG0uqiJ53SHCAeHZwg359JdNTnyxH3y4MCWcGrdaBvrv5d+lEKi41Ezr/L1l\noATY+i0fISixN8Y4dGaSvNhQ4/uutE/KqXo8Q9VOzkwSQrck5IoaaCMptyzW\nUBmOaxj/gMkW27vcOx+kh+8FTEIb37FHXghWc45OEsGbKkG3lwJCWwKNC1Uk\ntovbXkKrFUtHKwJjam1+5Mqw0rSfeXyGfbwkSCltaWIZeUwaontwneitw73m\nVtlesK4VLIsgGCkC+RBYaf/RQSFc5fry1wHvY6eOkGTUPBgC/mDa3PJ+gRG9\nFmbBxYy9wqWRagr9dj1siDNHL1IGn6zDBZpxQ8GRQwPILMYkKIUfFl2MFOMg\nEy9wkGrsSSeX8kFB4fP/yMdCG4kQbmJrltIPh1xVK3STdGsjG/5cPqp9yinV\nzt1e\r\n=GE98\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ea3facd271d6492edf01fb94aaee33f872db33dc","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^7.24.4","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.1_1613037847586_0.9532790068048209","host":"s3://npm-registry-packages"}},"0.11.0-next.2":{"name":"gatsby-recipes","version":"0.11.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d6e9580f865245c9382425069c434fe541e7832f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.2.tgz","fileCount":152,"integrity":"sha512-qSLtUmjW0AM4kBExzWNwPiewvsSh/qFjGYBod6EHuEL+Hk8/5nyXgyzLp5kD0NUMaLYYWX2EVLIrBEDHFSPu2w==","signatures":[{"sig":"MEUCIQDHxopsyO/5DvpD3DWiW5mHeJSTBFVUn7vCZXVhIi07PwIgL/jgXtlr1TJqA/bCTADq9wGrKW5ixuIN1kVs7e1OW1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5563792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKkccCRA9TVsSAnZWagAAyeIQAKFWuCQmjEoqVNDz4BMM\nm5+djVDEX/JPK7K+cwMgvE97+pasOdbDc2QAxAtHWycCO1EYtoNHRjQEW3us\nNX9WwyuNNboq6Uh4gzIo96osu2ZtBgikUTTXjyXKnrVToAEvugB0fhiey8Cw\n7NHSNwVusRSMk6ezTAkQO/Db1Kxj6fj29zf+isl66ARFj66mmaiQ8bDqMUdp\nXV0a6KgMTQWS3xUUbTuruPhNlNNqwxp5F6NhMwPFDfqRImTpr3++Y3eacM1g\nv+bWgnRm2ogbl9e/jINdlZYAw7LNi1h3yedd3tWijJs8Tt5wW2zz+Zw3NK9K\n0U481vYBxLeWU7t2aFDOnKiBGlyZjz7MRB37c7vFm0zeFg7uPkIk6K65W2nY\n3sRexCISKir6fBwYUnlfsGLlzkYu617on191b+sc33evqcKPeW9z37uB01Bt\nC0cdHCEw1HsmFR2YyyQ3i6ZRC1VaWWjk2+t69QvKg2ph/SkNqyHBj5adWG/J\nlDepKNAqOt7upc5hE/4qokWU6W1o83RlfqzU+spSH46sVgjfpvuavvclX+Bl\nW+3sGyjgbJ82rtPUm2eE04wbf30Fd0WgPEX/Fb13WCk6s+O3aWaRHid1adRw\naIVk5Nu2k2Nooi6GYjX1PJfTneW8TrZwTAIh3TdqQ8pgN4Uz9ggF/j/eu1tc\nyvQv\r\n=er8Q\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9df3fa3c25ab738503ea5944948a774b0906d98f","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.2_1613383452415_0.34110220323763074","host":"s3://npm-registry-packages"}},"0.11.0-next.3":{"name":"gatsby-recipes","version":"0.11.0-next.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.3","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"madalynrose","email":"madalyn.parker@gmail.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"kuvos","email":"npm-public@qfox.nl"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"mxstbr","email":"contact@mxstbr.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c72cef0433254c106a260a01a3c13b77c5d201b8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.3.tgz","fileCount":152,"integrity":"sha512-NhAtbSzMwfZEr/wiLRAIlE5n5cK9sCD+JuZORd2Zaqybi1g3j+1EBtaEDMQqSd9w7tWA5ppcMwq0jh5iRmLRaw==","signatures":[{"sig":"MEUCIA4UcC7dcOINHHwBBubActDyLTZv8OCaCuPZdsBJ4acFAiEAoXzeLwYYfH1kj8Wn5wtNR2KQaDHaMCariDvlB0+lqYI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5563983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLT2kCRA9TVsSAnZWagAAREsP/3BaTHDYB0iH8J5jDiED\nqEyU6TX8thct1Qlo3g6KWy0eC21io8QqNVKGUPWD+x1yqHwfPpRswQexBkCe\nfPtrfBFwy73gsP7UvLaXCQTVnXYB8miGItj+sOPGGwHcrbl6cPnW25+8zj88\nBmjRi/fnN+auRsEDx30jLKTmRTJ7qpTItkKFUxFBgNQljGPG1LIgltBG1aHL\nnAGK6lE1BFg9trvofwjqjfTX0mdOJrZh0O+LW7NfKkcSy8KMBhKgXnJl+/Je\n8MswSaqYdoU3V+G+3iQ/e303lds4VGG91L1ghmkfLctEbHuLluJxZhrOpLkQ\nx8x9fiiAjr5GgSUYGHAviVVZJo8jtnzM4CqsSVLOm1Uya+WXB8/qRv2+2iHG\nWibZY0Ff/+cl6d5AmZYAr4625z56CPZTVhPiM2UpBoc9u7cRd5mBNhTcW3oh\nvP3L9OnnSYmf9738jcDWKVcqmg9PGShs90h7IAhNp+xo8CJUSwAQg3B3jGvO\nL0cV6cbQMzi4IQGAHjGBAkxUJZih7blYE+9o3IsQBanMVWKCI7+qQZVl3lte\nXfIStGH0Aw7esuu/EGMjKxbI+faIBItFLY1DhPohC2TQGw4UolhsjXlzlezn\nqLIVMmTnFnkTuZ4rB+kIJioCequ4rkEYiL+aHfLI2DC+4rwR1Mns00quuGsG\n7IWG\r\n=YbQx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"b1a081bac2d39a26e63bf8688cd9dd04f05e2581","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.3_1613577635763_0.8281204011198953","host":"s3://npm-registry-packages"}},"0.11.0-next.4":{"name":"gatsby-recipes","version":"0.11.0-next.4","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.4","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cd310ebed54b8f760cd987a3650de4b9b77a4040","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.4.tgz","fileCount":152,"integrity":"sha512-japcdc+rK/XyNBPv34yUqNlQpBfcVjj8zsjvpEd9lx73DKv1kC/sQbt026RIn+dF2/8mbDIkFAqMjW1K+CDKDQ==","signatures":[{"sig":"MEUCIQCij3VMsCSeLOW4QNUd3TtzsiBJRIcHzqsU5xAuKLLqFAIgVQb+3tqB+aasNRol7j3KmmdbBxJwcBNdUr+N6onO+9M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564316,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgM1lsCRA9TVsSAnZWagAAHjMQAJn4rA2vA0EZlUvcsZCC\nezAVHc5CH0STe+O1O48I9Ycx0nyBzRW898cmviB+zfZQMO/o5yNpnxfRghGa\nRHnBOzXR0hlHybW064UpgU1tEAp04lR0dVuG6ywB4WibIp2KKCJxHS9wf3uc\nAgyy3/SBo8s7szkGoRt+igVSe2yWKMHES+Hu6Eji+l6+WXqsaOuGG64519BL\nnjo2LssOssWRLoJiJVouza6QeRD83G31v7dSVM/v5xTuTwGa+TMaeChDk61x\nr3L8sqvKH0Duf0qrJvdsCT1d1oEoZgwLWjeW1SLHe1Bkuciuc4fbI78NGHQh\na3+14DvoH2134EYuhjLVMC3sbxF58hEm5czrnOUJjTNK+0UtlM37gOxScsx5\nNFqj/27ALqqJl78h6BaUWLEkRz3v3OEIzQfda4UypjdMDPDLmB1T+p5Pvl58\ng18Crir44A+xOeTyI1MRFdG0E85LCEeK7Gbi4mgHI4gVapuzkrtKUImGHXxO\noYbpqjW7HRzJNmfb6i4P5vpnTzRcnMN66cXiMPdi7y48FeSHocO4WnRIgihm\nZ3dY8w0jGhfaOck72HwjYNlxTiHRllLHIhYhtWuXdPHZEe/JCnE8A3mYrLpL\nzTpauxVAG1b7EaFVRVbaxhitLIbfSCDUyiiOf3Sv2dnBJCBCn8Stt3GmsVtP\n+CfR\r\n=gp4f\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3f9065586ff49d40d672cc2d48be68b02bae0dc0","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.4_1613977964399_0.7885943572246481","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"gatsby-recipes","version":"0.9.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.2","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"04ece7eaec2c6f08ac0b71fa2ef1829344b07153","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.2.tgz","fileCount":152,"integrity":"sha512-+jcVzYh7RUxvU1yxdUdUfp06nrwl8y/G9FUWC7izho/t65R3IYTJo2danTwxiva6jPRWLfjfolNwD7m1rQ1KRA==","signatures":[{"sig":"MEUCICie1gDWgu05YXiw4YBd5fQ2Is6r++J/aTr9bNzslyjQAiEAlEh9Svi/C0bpTMt+TkcxZcgHXxBWyuQG5iB3rgFtSsM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5517076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNmGTCRA9TVsSAnZWagAATD4P/176hQokajjlogr/sF4f\nyL2nN9bB5DPQ+eJAA0d+PaSdSrEI9TRMNsUjVTUFKh0CxxGpueE3UpTWcX+4\n4bE4QrwhQhb8BrZRU8M7GpOmRnAM6LypZ8VJ1oBoqs4VDUaWLXrrLTVsV7pJ\nflIhB36n9GjwhtEZdytRanw/lxv7utsvmYywENJ1YyLrpkHxLbV+Nksgggfn\nYiYSYVExEb/EsIBuhdeE1RmaXCsrzCeONPUbtj78DcgB9TDuIxpp/yOl1ZCF\nvybdQDN0i1y4p5V5tWC7MM5ZjYcYI8LdtZOigwRbQD+N6DIWAkNn5r4GDOqQ\nqw2STkVq6jgjZunZb8fUKFRDRSYAv+GNHf/Yuenimha4G58Y0V6oN1LzbdDE\nfr5SU+DjRvOcxcALOepWwE1UR5x3h4NPbu3zcBebs89ZJHtxfMGBpJMxdsL5\nhYyUjbKdAqv61HYepjwWu0xZ60AMmZjA70kkgYjB4GArORlPFA7dvnBTJM/e\n1FmLPBYGe2PS8szhZnMiy6ikcrULt4mdnYR5aKksggwd7C0tHzmJdD5lZoEc\n3YhaBjzy6Mbu6Odd1XQhgrNYffnKz7j+HGyDmX1/yv7+cfWGo1L9+mXJOKsT\nI6/gsoSOqPxWO4pHIoi204JmHgmSIrofILbyBS6Gi1ektpW4fI+Y1GeFFV+q\nZH1+\r\n=Ew+E\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"6fa14e4ba75adff605443402a9a93417a687aeb4","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.2_1614176659122_0.7246085828554445","host":"s3://npm-registry-packages"}},"0.11.0-next.5":{"name":"gatsby-recipes","version":"0.11.0-next.5","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-next.5","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f60f4f23771d08ddef95b472275e1b41849c1f98","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-next.5.tgz","fileCount":152,"integrity":"sha512-cs7bEprSvUKbWN+FKbtKZQmfedQvFFwDVamde1PWaEtWoMnhsyeMRwbK21CzXuKyBBjm09KY8Tm2dAEN7obRNA==","signatures":[{"sig":"MEYCIQD6rK8G4ZwFtRok0eiB9yJxnhEOApe0wxU35VNgs7ACDAIhAJdW9XnVFRZ2t7qQrVK7RkWKqG3GhS4mdrItX9/LLhEK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN4QhCRA9TVsSAnZWagAABq8P/3q06Vy7VqafySqzx8Ar\noN6BM8JaKFykkXVMeXZMFaewHD0brb3BQzrUZm7H6E/cPd/B1SQq85slSyFR\nqA8vJPtw+nGi6zN3+0p7l9C4kyczpS+PHXM/xUJVezQ1jbMhroWiBoAPNByT\n9mgkmfzYXal5/1rM2qKQnwDtRXZLF2IKMXdThw5CgP4kpPvwTsWU7evl4cDI\nKEixgQPtXYE1QBGwk2lbnZ9AN1N+QoObrQkcfevnA7gzXShIbowX9kcN6yOn\npV4SF39T0fgfgbNFuJMEvFgalqHQd+E16cyzvibvJeaurNKuZtbxMxVbdwSb\nP60E6prTRi6NvwJnidq1nOvIGXG5XJd4LCStTWGyMJPhxF4GO3w+9yYSkKmx\n6kkALtJs/OkGN7CSN9VP4w136fs69EvGwZeeG4YEaRzWUZoX5yaOJ0gQgUMi\niZ34v/DTi0b4mM2oOJz8QkBCFgZlvf6cNZboF7V4e1gCO4u0J5pCBPXNphzV\nikT63isVIyII88qQyeHgiOVj46TDElQSZ2HwaWJQW3jOkSrGAcY0TSLyS/Qq\n8QOIPC8RBQ72GG9dQIazv2hjVvNvyrTBW03kPNdFRqh1sqjUromtFQNdfOD8\nnssxKdz9SwVtKCMqdgxQ7p6kfbKfEEQU3v/kpNpZMCwQHgoTD9wTS+B4gMA9\n8XIl\r\n=l2hL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2c049ea62d8f1c34370f675c4488f459000ea68b","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-next.5_1614251040913_0.5662275660805673","host":"s3://npm-registry-packages"}},"0.12.0-next.0":{"name":"gatsby-recipes","version":"0.12.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.12.0-next.0","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3d816cb167960d41ae1b2f18c54a9edb60a92d4d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.12.0-next.0.tgz","fileCount":152,"integrity":"sha512-wBIENc/jeR9ZukQy8AcnjrL/Ad1T0/PHKtPB8UZbHZJXbm6Glw5qVBAQEmgQARWxeRunbvXcqWqjcqOrXZsfag==","signatures":[{"sig":"MEUCIE1n59W40aMXxf+88VwUb2i989BdG7QzX27zyXewZV7bAiEAskO/UWNdoNKbUHzdXXtGCHy2ewtdPt2LdAblkFVcrNA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOL8zCRA9TVsSAnZWagAARDIP/3lYs0tUy2Jb3iCjp45g\nh/KyDMqOoBy64CSeNSYdZaSLcXlJ+VLViCbJTgH5nguZBA15AVHIsd9MPf9Z\nH1zRuDgyikk6BRconBn87uXOouDG6oxcgUZqT8ePjVnvkybxWD33+2o6QtSr\nm4RRjx58h1VIGpfOSsnWMEabW+0q93J0YEbj4GNmQ2BBGLJDhQDGyhEPmrWz\nIi2TEiHc9uSw7T0DlNuNl9hf52RTVzj2ReX9I7hgcYhIlT3sQcV9+a2pKp46\n6zseO2Y1GxCmnpIOrEwsMEcZ5AGI1i06DQtvGULFxg+PogN5Ii9+96Doj0wS\ncDt+hcAfi52SjYL0TaavkPD8f/vEu+ZCScgqSyMVgfFWsrKConKR08QBWocg\nIqZ+ZFPIDUeyReEk3RJ4Q6HviD/I8Anc6cKd+dxSreLpPUVzFdmabkpQVNlI\nIYQEDA+Tq1yE4hbMvZXouykpVvZWGNSIwQhk/TWy3e8Aq8rq71c2Uh/41frG\nU2LHBP4zWUUWu7W7ASw9lLIb8lLenPKcUIEC0qX5V6df4zW8dUcrIumUGLcM\nfde/W4NEX+CpyiboOOooxnlvQaVwbXN5EOrODAlTv+CoWLMyBN2oy1qPBMKz\nVDO5DIvXjWRncvhNf/fgTDWiZU7wxtP6nI4+lfTI9Q7uDEitU7B1SeUh+iym\nsmJ0\r\n=t9v+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"6e36a28dbdc8f26b6a643972fe685570bd1de99a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.1.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.1.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.12.0-next.0_1614331698871_0.575175391188214","host":"s3://npm-registry-packages"}},"0.12.0-next.1":{"name":"gatsby-recipes","version":"0.12.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.12.0-next.1","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a3edbec70ab238010584f0e679ca7929fe9d6c62","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.12.0-next.1.tgz","fileCount":152,"integrity":"sha512-OjmTFf4Yv92C1DMWZ1DNopS4KMFdH/PWR/1oUpxfcN/rfn1JR5hrRGdfhQFW6UXbYVNmUvtEaB1pQhNt6plQwg==","signatures":[{"sig":"MEUCIFn5ehHRukSL4SmyGyHkzmdNh0IOCA77t5i+BSHR48atAiEAobDEs4d50SdOuPwfiR3AVTDdFtq8DY3DFijyYrEUynw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOPv2CRA9TVsSAnZWagAAWggQAIzVI4gvsp2IHuFXYWoN\nmC8yPR/7lNPds0n1A+cW0UGRruHdcoxW88KqP5gL1bpywTc7mPSbQ+ApVzXy\nEPVfg5wE4XioI8+xsyOgptNUHSNwDP1FUpWEhYq5G+BxbOYIyeHC0oau36M6\nFUOXJo2fM0gQuSdSvRvv8oQn72tD5rND2hOeWzFc+lxeAL6wb9JLrlundb03\nH4j/+jfRTRoX0+E6ylr1+9elPrkLlFoJfqZBGO2Gv7Y/1girpw+EutFJl4zk\nhcOe9McxEkox2MXGfXDYZ/f2Ae8vg5oplKfhkI6i1YPDK+X71eu89vB4OFz8\n8Nw5oOjPEAV3hf1ZpWV7qzCpzLHDVEDwuhm4iyA+7dmugUyWXQji0uP8dbo4\nlllyJnxgasf/mn+U5gnT5V7Dy/e7PvgpbpezjBuaka84wpnq99LkdRWXSlm3\n7PYj8eCP9rMZc0e07fEZn4Dc4Htm3Qipe0oXy1G0+IMvXBVgLwtAX/nIdy32\nZ8c2GIPfuznKTu9H1XN8WASq6ZOYstpuu+ngSu9SU7yBhPPGeOCMYI+iOxwY\nn72t7WJcsGAC9VymKRypJmFfEwABZt6ypoCDPJ8znzTt9ZoPALU1mgifzjbg\ngCJvrFIcOnLE2jtAMskiu02aoC+slS7291afUNfvBD9kz+nSrciAZEfL+h5A\nHdIW\r\n=zMZw\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1c661531b7f541b848a33a64abb5127c3dd89260","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.1.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.1.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.12.0-next.1_1614347253517_0.48510791345951776","host":"s3://npm-registry-packages"}},"0.11.0-v3rc.0":{"name":"gatsby-recipes","version":"0.11.0-v3rc.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0-v3rc.0","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9a6a128b75e285c8e7da030ff5902deb5d576c51","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0-v3rc.0.tgz","fileCount":152,"integrity":"sha512-AlKjVw5Gs4c7D4jYxUAPrhpV699yL7/W3P3uP0jAinWt9oRsRZF2F5jP7aA/Oe0szScCFmChjw9fO9ysVz3vQQ==","signatures":[{"sig":"MEUCIQCCWr17ngE+wrErre3CRHTl+Ftfn4e2FKU4zQAhEkfpZwIgBxqMJnbhvo0iJrjvznRinMBV3KAsTvM9NWP4xKUffW4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgORp+CRA9TVsSAnZWagAA4TEP+QCkuUMhzWOM8bA0SKJN\nJr/TxozBxACULT8fbjtTR7WW12q9NF+z1AgTiZAbS/n5SvGk38jOY3MaDPv1\nakkzoB7S4R+HYB+eLs9sVsoG6FMVPRV2iPhZzeQlrvmSa+C57uFq7oyo7MkE\nLoMg/EasfBZ0kfyuoc7rG5QgCdytjpNlGeaaGdc2lAEGd4rGbttX9//scw9k\nK4QvCE+uAsrron67Q3xXIJoPWGsD6fr02DdNgHLMErT13xI1EEaHX31kAp+6\naGd9JDrpNnLcXE6fnxynaseN++OqZmOH0B5jQGOz7qIMwbDcGploeXJrbLTc\nfIHwahup/BnyITrVZil3lZdejnkMaBfsHaMydml/1DZsEyo5cbyP86Menw5s\nDw3i8/gmoKJPexUa3tpAf1ZL8DTLRorGh3ZoOD6XiyUvgZklb2Twf4ODTPT2\nq3krv3wInZUszvRXwq/mkCh5y+U8zQrGozOPDcn76moB+Tg6XXr1JtTG/NF5\nDNeFtF2OpcBFhOcQfkU1F/JRreRy7iaxIKlA8WeZDw+Uljwv0pDkjBaXrWc3\npon3jIq/QD51f+MbKPtAWzYK2uRhRkErxxaG/I+u+hkbgkB/5wlj1mAShz2m\ns1hi1i7JJPt/fkoUsPGPxLe9sN1kxY9uZNWUSFXi6SahozAtPqEJFhhG9fjP\nYfpw\r\n=9s25\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ca446edb54a924ede2725e8748be1e8046248c06","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0-v3rc.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0-v3rc.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0-v3rc.0_1614355069576_0.2531000024288903","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"gatsby-recipes","version":"0.11.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.11.0","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5138fd1ad34b766fe438387a35f019e3fa09c160","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.11.0.tgz","fileCount":152,"integrity":"sha512-HJXVEKs71HFleUvaapEfqjZLqZOFRbr90uKSn75CsZNnv1SC2HJ2kTEGb4P67CoFlJx4QUG71mhYyT1kPyy+tQ==","signatures":[{"sig":"MEUCIFc1qM8Jre8/QG+D60oZLQbvpdICBKM2ga/2YX4Ism7VAiEA/juh4mLJCTKjf3ov0jYRScPEX7mtgy92OujkIM29124=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5564857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPhajCRA9TVsSAnZWagAAqvcQAJSaHtI1SBPg+Uftfrsi\nC9zfvcfOUk3MmtQ1DP1bCOBsiDmg+6P5NlEMYroq87Duo9lit9yDa5mTgJtF\njT3nLysIsBxHyhaLtBfhXkLKq1Y9LwNQQRhtJULUSeZ/9ACy/ch+SPhPclLU\naQzKy8xXAnsmGGwCyHsmDGQqLV9jF0NAcc6mv/2vPxyUOOzi8UJ2u4telXEl\n0HCmtE0qBCIo0pS4y5yE9kuB8SVsTEsSZZzdOrxkxft/UYQaKqLYhgK5T4ZA\nUVaJ9VHms9MXJ0q5V238lNhYyKJU/kDVzsR40Yh7Fo1QSSFZWwPN3jZyzPkK\nOCGtvW/YJgcjiirIniGiJ04ZNwvxE65IQR8KEIBrF8eswUNCR+tAIZDaIJdX\ntgVqQFe95Y1fyh5bfZ+A//KTkd3x3Bj6eNgTg6ibQVWSHTgHRl3lvF7DXp8l\nCpiXFOxB13N9btpZTrNxVMGYQp9axC8KMNPc0jDJf/PP3WVxkiXJWjnj5/mW\njgznMvxQ6T+SP6oUqKms7ZKrkVys88CZcSmTNz1i7PvQpYyb8dPh1LSBmMIl\naMmEO+2jjFIj7FBM8+Ob1teP6cQ203jI7lqKY6Cc5Fewxlp0Wj4QuKVVAhTN\n0QS2AuCwcwfJPds6vkFqE/VDDwSns7+BrXP2dBDkti2tWFncVGlaN1cFyc+6\niacU\r\n=pmvZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f1d3f7b56bb2633e8e9de2d43c4e08dadfd52597","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.0.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.0.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.11.0_1614681763131_0.020502459573870535","host":"s3://npm-registry-packages"}},"0.12.0-next.2":{"name":"gatsby-recipes","version":"0.12.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.12.0-next.2","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"aa84ae36d3eba1eb1804a01844abfc7769099de4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.12.0-next.2.tgz","fileCount":152,"integrity":"sha512-fXIfAjkFx2jHOmImChZWVjdDd0H+LbQBke2TujKziy69qMRc3MWob1i0ihJsoM+ZZe37qOPjwsd2hEkEh1usrQ==","signatures":[{"sig":"MEUCIBpy3yfQGQ1/z3zaTEATEI2ioTbfjESvPv/Yqk4TS+aSAiEA2yZzxTxFlsc6xrJloDG2SeQOJFPunHph0BjSdSDNc1U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5561988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSJX3CRA9TVsSAnZWagAA9fUP/A3ZNMcc8sgzJSFd+nqS\nakDaJWlMDz11CrV30pHG305z3U+/cEjGAIM0qIfjiWXvdMKABpwkJJiaNU48\nU/Up5XmG0IwhHcXI5T2WgNYTyDowzv4OKrY5n52dhQNIizYYzoEWrIHLlB/o\nCWhvx74q2W0ccSbn2U0Hw66p/W8nYIoWpdDLYKpuCtVSRRBj+yqx05c1Ks5y\naqE+PjwEOCsWK0hHxdFnS44TVBmd6SwwpmxH+zIyzeFSdy49KlBD2JV/R144\nKufkrDXUJLRd4G4xC+NCpTarLkWotOaquIPKb8paQ9y6hYu7BdJArZ1NOMjv\nfNZSNkFjGMnIXV6Qg4kNRk57zJ7NVy7DHNPdDMQCgqoNcUQi+oB9u5CH8iYy\nwpu9WYRhNS1KVae6lpjYxlzF3fJLeLxLMj/dfcubvs9VjkQr0coPbQJAG0af\ndcypSbZrl1YPPecC8Tsxg7Y+E5TnE7H2h7OYqOeewo4Sxd/oLfRp0+7meRYW\nmohZDiDHeENarZF+alEntFOHGfiasWK04wK+/PWtJKQ5mf/XOdkC6N219iEd\nPiUL534AP8vid9vqg4xsQoHLAdkc4ybclpea26zrmGrNL607YHSSKdmBeGye\n+oizhJz2Tr0keq9uvHAPaimNszzuMq+msgUiyjgGIzfQpZuExA/Pk5aJThG0\nmlEz\r\n=sfC0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"73859a9e22e45ef0064fe87da9f4b855519708ed","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.1.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.1.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.12.0-next.2_1615369718690_0.6186193615223381","host":"s3://npm-registry-packages"}},"0.13.0-next.0":{"name":"gatsby-recipes","version":"0.13.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.13.0-next.0","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2ed1f30dfe0be70ce56d3dfcd2607156c93fa507","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.13.0-next.0.tgz","fileCount":152,"integrity":"sha512-sxBCkp0gBE4+AhyCEJ6RCEfjHuYcqdS7RwEA5t42Rpq6BKqkS/Dt4W6HkIxPfVVGAsLTe65b8qEp2REoJ3tkGA==","signatures":[{"sig":"MEYCIQDjLdd5wqYPgbpH2vS83h82HvvKvgBUfk+SJOU77ELvlAIhALfvo8SETc/k+BPM5qD3wXUgWhJh8lJcdCw+DEpCKjwR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSnngCRA9TVsSAnZWagAAXAcQAJ8f0rdwIa2kP36o+1zr\n9Iw4HiLuhP1MXcJ42a7Qh/8dcNDJNSA8M1r+pGAP4wECywnQgd8U+H5yj7/I\nbkn5UXZtKkYvEal0X+fRaP/FS8qIiWwlGQpZ1nd7EbyIn+3VWIaCqTJAArRG\nUiHqlZCufbq/UlOvZg6nbH+1ZIpTHBCP5bFNluIv+lIaAIn3t+AZQpCBJAfc\nsdKC6bYD9kft/lSQ+tVuoFtlLVG1gclnSTRKLp9ciMApY98R9cNJQBIBVOoU\nxTvichSevmvgF5g50L6Wwzrc/qAEJ4ud7MVzmdhruLOKsbp5RJkGwMZzAl/+\netHKXyWGb92vq9DyUUS6ihuauyLgPVmg4+MoGO70ZdAYSYg7S57aqneZW0l7\nnFLJYNDOVKwhCXLASiY5hTM/DsZ3vVsS3NbvmJH+Gb9BO7r5bcePIuBWPvOB\nu9anA3FbLn7KHrqzC3Gb9YaRmlsm8NvWxzvYeyn0lHyv8/JppK0MSZ238r2z\nhwmyJ9LBRQrnZgmbSj+QRIx32A8hgx8T3srvV4tTLDBAs3C2I4cPnS9O5YS0\n8UwXBNe767YncN4HjCL31H0Ii7XsU8lCxmBuJYbp0WA69vH29U86qvsRUwMk\nBMPm6laqfzbx5mVliPutExYt+nrcDCxMQ154CS1BoXqoOrF/gxkqoJ5lGHmj\nt2/x\r\n=Xl4z\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"72f15717e9f166e338ba120591e8b4e1e8a92c16","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.2.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.2.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.13.0-next.0_1615493599975_0.06495846691032914","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"gatsby-recipes","version":"0.12.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.12.0","maintainers":[{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"3b0e313c6f67ffa750c7ff402ca1196f525a2470","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.12.0.tgz","fileCount":152,"integrity":"sha512-WotaMTpVWVP40uO24Iw2ioEAGcO6OZwcJYZz3Ihrb4CmjbKM6KEic8RuXH4d84OTLCvWz0s0lPiIu1IgbnYwgQ==","signatures":[{"sig":"MEUCIQChhlQriTcz4WooiNYkbIH7Awv8NfcHFCR9qRcr9//ZFwIgFEncYL8UnLuX17gqGVfuyfU3GR+GSwIelOkm7W1DT5Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUQeNCRA9TVsSAnZWagAAZ+0QAJO4XV2j7IKPw8jIhRKA\nDig1q/Jk9gKKnjfDRNwi/3vG5mwQYqwE3vm3yut8iGTE4rUXacYLvilb0yeA\n7PixxcTEMYB9L9XdMmd3fS3ezwc65PrPBzrtHp4NXpe0niTuHu2FmwA4MHWp\nGabTgF9Dft9fh0NkzI7mQBzWLTJTFPSTSD2DGZs96nGC3Usfj+Ihof3RpO2m\nBaRpO9pUGfRkmRowocIgB18jIlomsiUwhwhVaN6LcqoOVTS6drALrmKSOWWj\nhIRhAKrhxPHUWZ0FhL0kjZ8JLz3r1zodyZ+QrtCt8S5ytkS2GyWqkB6J05wB\nh1SmUuQM75617mYUhyX8gYm5OIkHP/GgpAL2ObirZ54O+M3u33TQ3pfJrc6u\nV8HKv6kvezmDgrQzvJJYknEblQRth49qy9T1dcTUYIXX8ythY98R8HZ8iLrv\nsPztyYQ/LV5gAvfD70uzuvibQsHJrmth8rsjuqPK0okPAmkYV3Pz7IjxTI5+\nTAlckyY7NC/kQW0eEeyxU6w129ugItC4j2p7E0rMwE75JMepv3nbp0PD43lz\n7lRX1tPN4Ri3I+FKfJ4lIxQ24ge3g6xIAZ17AV07fP7pqHDmomlbIAp2jsqH\nUucL7zNGZQSSS6etaZzZDVCw9ncQvgoGygftwPAKx3fz+HzDbnr6Fg3uPPxO\nAi2/\r\n=Zd08\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a2a16e4d843df361f5309e9ac82f901fd74d570a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.1.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.1.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.12.0_1615923085123_0.8995298628371133","host":"s3://npm-registry-packages"}},"0.14.0-next.0":{"name":"gatsby-recipes","version":"0.14.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.14.0-next.0","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"92ecf57045cc4b70dfdfbbb98256b6fbea24c8bb","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0-next.0.tgz","fileCount":152,"integrity":"sha512-Qr84NbVP61rxscE5R//oGvwYvyjoohGbdydfH/0xEhDXFDR/FIfeQc/TMx/oeqtmNOD2ZD1QFJW61eMgvc6yTw==","signatures":[{"sig":"MEUCIAy97CU5pVc7a9d/jrKaDinbZDTMNUNCxDkmANdq/oMNAiEAofLRqsoRb7ege0eS19ZFYSWho0acgTIDLvnTb6YWF7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXMhWCRA9TVsSAnZWagAA3DUQAI8uMjxYYb2dv2Wn08b4\n+HZFTrjnUiUnDPNiUOBy84S/XsKBCgUqfHrYCEdFYekia37iW9AdI3CcF2Nm\nziGdpzBDwtQy2lCPE2iBWZx7Ne9qobuBRTTfgXYvmHQ4Ijr3j48WofirPJQC\n6E0G8+NDBd6dCPIY7s4m/UEL2MMRO2NlZBgIEfWhZ+Yj3ZmZucyPyTkQuYnP\neNX0m7c81EwmiExv2exRLeYUcYMA1U7xQOWjEQAG63BIC7h5eT6vhcMILeS0\n0pNV1qLITJTYBZTbJLqkT1jte5JTEAPTuCd8VhrQvJHd7vee76DQ4nrrt0r6\nplrVCINam6+xAKi0wz9pxQa0zhigxqkxmZ1S5ikrR/p5/lFqr/i9Vhr3xpaK\nqlDFWsSgpY/Q7oO5sAFh9b9FwLcxhHrZ3JdWx4ErfInNXKnKz/tbw33E1GZ7\nss0Fl2ljoLTkKDYZUaj3DVHtNH5D1vnrXvVIMJhujlaTxsDAXSef8Xjr6/YI\neRz54PlbrpjvT4hMo7zaTb0p5KVZsugh4YeKoKBbVSmU668Dz+D9sxZsqU7V\nNbw5HRt1CP2iVE0wuHiIv7oAvzlPo/+2KctwDrkndNljclaf8fY7197jy1tb\nqjMAY9+lkBInYFXSq3tHA/rAkvsojm8SWAGjnV6tZbml8zGt1xt4QwDzYeqF\nXTnx\r\n=f1EB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"835e00e1b585f083f7cd6396ee5c453cb0137cd8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.3.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.3.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.14.0-next.0_1616693333438_0.3164866924268377","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"gatsby-recipes","version":"0.13.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.13.0","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"laurieontech","email":"npm.laurie@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"de9cfb611052db899c6a2ad8f9368859b82f7e59","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.13.0.tgz","fileCount":152,"integrity":"sha512-ni3J7wu45XfktDyxjL42zgjRzDqGQZX4/l541P5UbcAjdPAQJBP3qUgyPt2qhtenPYP/iZdbutXKxKjfkckcsQ==","signatures":[{"sig":"MEUCIQC1VaL5qs3WKqZReIUeGR6d52oq2EHYcwR/powNn3jGnwIgcTm+CHNSf1OTH3+wQXmOB3uWLSUrh2UH3gX7/CbyF5g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY1s1CRA9TVsSAnZWagAAv7MP/jShSb4znNtw1beZEaxd\nV1yZ7ptIV7jItwtYmL5qyqKl7Tc80c/KIUKTTF3U082wj/xHi119peWFmAti\nEI2lkxUUbCGsI6YSyIote2QxQPhP3Rm/dRWIS2r5zOTVeTcqbNAT49wrEjSg\ndLooCWttdw4Gj137A8ZsKt0UyquQOC9+ClFGdvQhM7p4ie3SBx6ccrYRa6M8\nDz6+LQSRAuMxEJ3fCRdGHqxO/h71RAw0p1FQ0oyBXnYfULNfCyW670tsMaYR\nVVu1mFO6EdqCstll7ZBjzjHh2VtK+o9aCuUh2KKttpsNPvFvLLimIqxMm/R1\nxuWIs4Cv66Pdskkt3hYzQgVVFAqA1Upfv0ERVwXIvCmFtWl7ZlZSvcm5182J\n9sBQbiN4Ym7lSyLPFGjkLMDi51IFCtcCz47hVX6vP4BDxeaSNJ5nLCbAzCZT\n8DNQpZSApiizQaxnevRAVyEvaIXFjzG0A4IUBOpfu9SUCoAJ3tvhEuIubON3\n52NWayUG/dzuLEzdNc4pDa1rTfVli93AVaO0oALgipxOqS1h88u17TV28qnF\neHRs9RYvzWW9p6RJjPQOYpEJD4UoYitGraCnKs0hXpoMwzPoOawuzgbevAgP\niEDWPx1zscn2hA1+Zbp9D04gJthSpl/iAnHwZcM4qKZiyW2njIBkmBzVB8K/\nHw9g\r\n=z50n\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fa00b246dcbfede3d10c822c64f943e5987c8859","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.2.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.2.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.13.0_1617124148395_0.688829616661345","host":"s3://npm-registry-packages"}},"0.14.0-next.1":{"name":"gatsby-recipes","version":"0.14.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.14.0-next.1","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"bd5de5b2a4345719e9ce1229ecdc684194b14483","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0-next.1.tgz","fileCount":152,"integrity":"sha512-nI4Ay7g2t6t1dSVEUGKj0jFPcg2LJdkpJDULNLH6NTQiNVz9l5aufeSxB4H4z/eqtL4S7T1RJc/sAq5h4xvpFQ==","signatures":[{"sig":"MEYCIQCO5Aw0FfBdUmYPXEuL34HJ2K5iPMFlxIhRXvVK5J+UQgIhAM8lM/OSQX6BB4YRMN6g4ck6wwUzJruCnEoMPAkuze8W","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbdBeCRA9TVsSAnZWagAAjMoQAIKc212lo5NYRt3XIia8\nu4oBpdarMawmyslSfBHymoiSE7VcQ+1Rk9BDPXDzqkMEfxEWtoZ3ZHpHLj6a\nwBmP8YMoDf/olulK6i80o3cpZbFjt6uHtSeqSFTdIyWVEfzwZ6nD8/idZc7W\nkYrA/qu3DKC1wOZeXr9u14usKN2+z6Jjedc0EaT+6yrt5LsheqYZF0CxqmIZ\n23/4ToQPPZJ90W4Dk7jITrw5vY8o64GDaiOJaVJhzxFK1La3yv3ISZiG+lXM\n3nYmaJ2knuMWulZvG28oqxcyBHWuxYJk5dG8Maoc9FYbZxrqDeCEmRZosVAM\nMyciQUPY4re1CagDmra8JeEmPTB+FZTlMSREiDgFH47dKjVvViIspNIZtPHB\ntZ9C3uz1tDrLfWwib3bSAPOdNAqDJjzUG5sF/VH68XGNPEwyrQxZPE3YVVsw\n/XC6KA7QeI9+7kKouGLQjgf53Hb/Asx2aFr6abPFt1cIMcLw75bSaKjfQMzq\ne/vVbTv5NbHgcb691495qq7GXvm+pGnY9SnAXVpkDpEpGn8IyW2WMSCo+zhr\nuz9hQVW3kBlIBYbuX93njkEaOi0fO+oP2auk+hqGGpDaEIM1sKWPqKCKO0zw\nTElEllfcwlfpDKKy9pb4yCyrtiZBxHWPoVqnXvKz/4o1Y4TOPW1pgzyHmqu4\nKDG6\r\n=UpKi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"a60e92f1bb4fe0beb37ffd2241afa814d265dda9","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.14.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.14.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.3.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.3.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.14.0-next.1_1617809501815_0.8645243355653476","host":"s3://npm-registry-packages"}},"0.15.0-next.0":{"name":"gatsby-recipes","version":"0.15.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.0-next.0","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2d4f97764874964e614f480147debba84d6bfb88","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0-next.0.tgz","fileCount":152,"integrity":"sha512-VATjaShrO9uQgrHnxKzV/+is4lBdCW9IvdVfzyOPoNF2KONVC94WHar/MmKJd8YiECtEyxh39CMV4tjYUZSNfg==","signatures":[{"sig":"MEQCIGe4lXio2vL0+CHUqPBBgKZfKlz1VdYd8SRhHslvOXNSAiBgYga2ms7ZFn+ArsiW+O1aGlObjZl9NxATz1uCAMvvTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5262671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcHEzCRA9TVsSAnZWagAA5ZoP/33Jc2iXr383BmfHkITc\n+7oMcQjLYlZ5QsG3sX7zhifbnYstpH0AMlw3N7OR/5TyEyJ/fm9RN+jQKmyH\ngwF0wGrRozYX69fcvh/mYLUjTQj9Htnd0Pnr0IOQV/KW3A+VI2+mziDF9k0b\nhSICEC+3TKAqtcZr0cvNaK4vJM67FHKFkkKOhuKQo1vnZlDMPk3+mcm9jY/B\nIWe+2vnIMxYOjUHqun3h/S4T0s9Ntdez5XTrTqNusy72HeAf6LGMiQjaHbDb\nRPIcZctQp6LRUUGDa5YChxKzzJSzyZo0K0OKqnoRfuOhGTRosNKK6KL7RFR1\nv5B5V+xtlWY0C9zqniKsfhhcQifWNyKoIcH4ERJusJlCQ40fMxGBJzuLjyhv\nPYgu5fyE7sFXBdHnQjLrNJ8C7dBvm/c/rufhqaueA5yKpBoLOR3fjBdysFpr\nrpFaV7IahivNv/ZLc6IGpsbu7pU7mmuuI6h67ILAUXSe3MlPEFAk0fLCzxbK\nS3eYc/ojfRlFZkB2v4Fg9Xgn05Eb6TiA7Q95Q4UszFbbtrCxPL+6cmGWy70V\n6xfQTzeJ+vKIcDDcmx5PPEmNdaCmH/oi1zO5uT35UDQOP3fK70OI1T8yvtpN\nDJtuWN7xPyIqYBuEDCkGDNh4RU8UoZjeP8l7Cj2Ne07eROySi/4YLWOXQD9D\nXoqq\r\n=knIV\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"150af15d590f1f8ce2db093cf196f3edb6ba6f64","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.4.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.0-next.0_1617981747191_0.8952157868948392","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"gatsby-recipes","version":"0.14.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.14.0","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6b2b0bf9c9f5055c85bfc4ef0b472dc21648aea0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0.tgz","fileCount":152,"integrity":"sha512-f8vZtHA7mCWqLE/xxEs4gpKxfM53L4dPic6hkALMlNfg8040eu05D6YbNT3i3QLsyqpvX1vKH88SBHk7swwW8w==","signatures":[{"sig":"MEUCIFi//694+QtBY7YFXVVqEml/AAi7irnlBHot7m86xnmCAiEAxThiIsr2t/FE5ieVFk8yLnQfHac0Tf5jWXsw0DMD/Wc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5262636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgde9DCRA9TVsSAnZWagAAoCcP/RyWbHp+i4N1Sf0Ywz2P\nvMduQTCYXf4WrM8D8tVZjX+TFLx2G4RS1LYVVGZ9VWmRj/GeHuHRnoTEaj0U\nCFXplctozgUYufMAQojYw6Tkhv3HOhv62gSL5KvXNJkZ0EGHK2nAx8EipQZw\nLwm5UeN+byfOE35emqANGQe6ItlS3ySluptgi2AdhAuKQ0ZrYNZ/8j3e0HhL\nhu11X1dtqk4pmNhOo+/vNAJHw5zV4nflQgtQsgAfoZGLDAEvGxITbUkLWx3G\nIakpIDT50SbAU7DATJFA4awri6pRRiktVuJgJ2hyaQCeQiLRygNdhm/5qH+P\ngD9g8cWJDovurlzwLPTpzfMmh3a+7uKkkD1TzdzA+Hs5eg68tUqlDWzBaYUS\nBSnBmUmstd/Hkamucx0TwtvxhL7MPVljYpAyMZH3j/n5QtoWM7VvN/lKwB/m\nyA6voPWeJEE+Sy8ryMzQmbcxa2copI99El7VBxhxCcl4BOKuVKImkKzFnj0w\niDyjicqym9eqv6UQcqylVgVDmdRPs5C636x6FLYZ5nHkCjwonhtYhXPUIaXa\n221laTk3Rgal0hCXBWMKwNjuNBqmw6LeVONaiLOft0f0N87hg0+h8ldGCsto\nQQbpHW1oOE0pEPEMScJ25c3/vyuORWmwOqcSTyLBV4NfxUeDWxBaZ0dIB4K6\nSE59\r\n=hixH\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e98cb629f942b7b61814431da46948162ea21c36","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.3.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.3.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.14.0_1618341699293_0.1412270579314272","host":"s3://npm-registry-packages"}},"0.15.0-next.1":{"name":"gatsby-recipes","version":"0.15.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.0-next.1","maintainers":[{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5e56ed3eea3d5d60b8fd122d1aeb13c7c35abc45","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0-next.1.tgz","fileCount":152,"integrity":"sha512-y0y0t3w9mRbmQADuLnKBy3fwpXVt5ju5KxM41OG4STpN0AD1p3BV2NjVkn7n3sm3WrTtHSSZCAuhnK3oLjm6CQ==","signatures":[{"sig":"MEQCICiMT6cVtc28WLO86AUjZd7FRgE53nANrVwJq7VjaXuiAiBa/4gxIPIA2dMimbi5Qh+16+6Zwgms6BeNNzVv5WQxZg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5262863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeXeCCRA9TVsSAnZWagAAGEkQAIqH1P5dK47lxBqkQhyc\nJ2xEGnvsXIadNV7Da0DiCxZReEv+U2PXkjmp5GagZ5DIzclpDCXApon1qy0Z\ns3i0QbzMp+4u7nEc+rilocryHg5YemMTMJyj/ljAc/D72mYkG+OVtLERzusA\n/4OD1h7tg+iZdMkXvIddTGYGzT+o3WFlSCzvOVMuD3PW3J/KRrrb/i1R1C0B\nFab71cjx+iu9BTj4wKjkL7IippvlYwzD4sIjAvlzG0VPG7Oto7zrT4FcBB4T\nNz17KDczF2JcN8YvbDJzc0C6JIZpgK7U4hyyicPBESaHF5gPpktPb/+5fhbc\nJ6DJSEk1eX5iIa8xb69GECrDODZQSz2pvgND7zVItGodGoInQcETz/QSRLH6\nt9l14Gh28nI3ryIQbQZsSqQSC2+L/oNobNij0ZqX7m1vOPBCih2iLGEGAxb6\nTc4rOwYEY87jw20FBSAme3Alw70xqnRqXvIk2glO1zqHYKjtbFtIEZbJilKB\n1ViGy5p/kS+7wA5VOPlSLiqY6CJf2xfpojGDw5BK4M1BnPOqqHkHob48MBb6\nqNWUdHX2Bqifl4RsQjIxWMqmthIeGk937+P4dsFNLnD5+5uMgLp7BkzRJ0z2\nSi/2IVoJbHUI881I5U2Xxrm/yjTp9PoYs+tiSOvAc+Wuw6oGno+572Cxwi78\nJws1\r\n=aE16\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"800fa23de5a98e6d0a3e7d7dc3897134815a8dc7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"ascorbic","email":"m@mk.gg"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.4.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.4.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.4.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.0-next.1_1618573186049_0.8972955813700632","host":"s3://npm-registry-packages"}},"0.15.0-functions-next.18":{"name":"gatsby-recipes","version":"0.15.0-functions-next.18","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.0-functions-next.18","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"c4c48438f4494643259726403a7e7d6600d55b44","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0-functions-next.18.tgz","fileCount":152,"integrity":"sha512-0esZZ1KwJ0jIy63lc6WgN4IB1/sHbjNGfXVIh9fWRY9mhkLOXtNKjOxsxyVTlgmoN2asZCGFADq8CTOyzlkv1w==","signatures":[{"sig":"MEYCIQCwOYcJp4bnyWDPZlok7L4AuMD8vUZlbh9oB4X2WyVqRwIhAPh1AVxmpO8qPAAMShHYNQkTmEBQcw3qkPFRXyCM87gs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5246245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfzn0CRA9TVsSAnZWagAAeu4QAJYCuo/0SrFgc5jHGHVh\nyJiba/IYHJ2BmKC3G224iWYNj+kTA8awwhGZhGJ/CGaPwCsGPRLykqnM/Knp\nBxSZDO9ckg9zlyOLWtMdOGekELXUtO6vZ8H4ySVcXE37A6H2MqacWAyUtu8R\nZda5lhADm/zJfJb/1DihS4/XrgXJlJb2MP/vcoNpTZbG+PS6RYl3Mx7BqC6H\nlrYcvNaoQxh95niqiGEZw3zfHzF4PQN1gwdR5nIh7oPOW8sFRuG7PhRIK1qY\nKqlf3BHqnOG8Tw65f+RWkfPHFbp4hJGTPFwZDKOF1yuXstpYW4jDhmD9vzca\n5d9Rz5d3XtnaWskFY0Z2sQzmyBNSs5pbEtn33a+ddyD6ikYaSJs88xovuzn5\nJ2ehM3pFZdPPZazYimPHqyLhSGhXzwn3jsNFULfQ/xkWdgK6qoQ5bdhpQLlY\nueia9kXYmqJVTMGZq2CcdtqQ3beSYvJpSiuhY4WKips/EoqTaiGgZ5moscIJ\nTw9kOatcI89SOtJr3VQGn+zrh/lb2a884J7be6Sy91jVLAHa72NJarNYLrFi\nk42pUzzYZpKyJD507bHPoeHWMbhJinW+KjwxfufBTM0l/IiLNsrZoUynTaf9\n18DiBAGEHn0IkyDbt7kVaxNli8H+R0QW9kSdbyBjxDn6zyPvCNfwvna1oxEz\nn7S6\r\n=I8j9\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"04f8369e5f1a03260a4ae607000cd9490fe868da","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"2.4.0-functions-next.18+04f8369e5f","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"2.4.0-functions-next.18+04f8369e5f","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.0-functions-next.18_1618950643034_0.91756476001589","host":"s3://npm-registry-packages"}},"0.15.0-next.3":{"name":"gatsby-recipes","version":"0.15.0-next.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.0-next.3","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6a91da991cddfb261ccb2198caee8ef6cccf6214","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0-next.3.tgz","fileCount":152,"integrity":"sha512-+T/FcxGfBLmdLxWiawGtoH/ZY6BwJfO7jTJlCvIKppdI/kAgFIT1vb8wBXbrY0fca6y1Xcbu+NqAJWQfwEGA2w==","signatures":[{"sig":"MEUCIF6ioHemMnyd8i21g1ZpffeJC7OlRVPG+jwMOLs06aMvAiEA6TYqO8b9nsh0Ye88eKNJ8mQfskp+wiGnE7XNj3BtNTg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5263247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgf2XHCRA9TVsSAnZWagAALLUP/32QawWvBqq/mZSReAh1\noFB7UDUidtnqWplm3kkHaNwPTD/lSVNR8RjwtkrvL8aRtPCQOl6NiFPTn0Z+\n/HtBUrORavO3CjVDFFbBLdvi8mcPp4NXjd8nbrYImkYfFbzUpcXK5DkJzWMK\nldO7n772Gi+wiw/IWVUtYLUiAehOaagd9jKcQwk42Od3QsEjDoXy4VahKSL8\n1RDKgB/GXDKY9IRLDwfuqNz3yfSfKU0fZ00N0p8UwMf98pVwtDMomzVr9KTR\nlELGbj/91Lay0DmZE448XjQvdOlp3o1Tg4uPpc6kIdDsNbMwhj/Wh9TKEhYG\n5WhWWo//jVrDlktWWfXQhTV/JQhgvxnPGR/E9QHB3gYjxRKYNZvUrOZ1LBE/\nI9gJCbyGZHDp/OfP9i+0WzcbZh1w1QL1opZttBOBpe8WKmuU5679Fz2LKFXN\nmV0dbw+XoRBkJPN1kv6On3IIgiizNlsesJ4jFpfzyjCaWQvhY8Cim02goQ3w\n5BZowz0TaLRXGxdKjMVgJCaxgOevxMYKOpzwlw6SKPXB6SP9lnX3X7llCtsD\nepmwu9+iv2qW2gjwHLvXlFZ5GJ0PU1paNloZ+PGrszhZ9VhR9V/fA6COwbWk\nNJPtszgpmhugJ2DunWH+Rk3Vy+WnCN0knzkQQWfzWeB881eLleCpxBlzHh8w\nMyL4\r\n=NqqN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"a4cecb9410eb2d15b860c4e9caf84cff7545cef0","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.15.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.4.0-next.3","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.4.0-next.3","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.0-next.3_1618961863152_0.9826960903744242","host":"s3://npm-registry-packages"}},"0.16.0-next.0":{"name":"gatsby-recipes","version":"0.16.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.16.0-next.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"173738893955f0b24f737781bdc1091247d5785b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.16.0-next.0.tgz","fileCount":152,"integrity":"sha512-xg2oqciV0qD9RYJ91bpkMXd9jUzKulMLzsbV/W1H+lvUfWKwpVV7RFEiwc7nNyCrJFfA2UWeYkYrENQ3whIkBQ==","signatures":[{"sig":"MEUCIQDbfu+gg7dqZuFMZTgzjzJyMeVwdnPgLkrcIsw5qYdo4wIgI5xDgem789JNFzmISxrgKxJMZsEsY2GT5ve6W2q773c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250321,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggqjgCRA9TVsSAnZWagAARhAP/1ww3kQUrouMWXktpAc0\nqcxKE21ek/UjovCLJ+crLvamP0M5juPmPSomfGVTTSbi+bV5BANw1YocLh0r\nI2WQligdUBPV6ZG/+MDiB84ILlMwMRrJxv3wAjUsP0Erjr4pbmrnr4mJ1Spo\nGjGU5pD4FXxzQ6QuIHwZzj4sxU/4BCZ2vdeRCX2g2z+UMnGS7CG0P/3HQ6x1\nh6V6GyHlb3vzxCrXXaNGOliZnUkMKVlNsecvamKFmthESbaw4Mv/QvD2JKnE\nYI6vRk0BMpqe0I/b4Mk2Vm/kVeFvpBA4QIDbYK4aAUk9PDX4E+ttgjmebUyc\nn67F3U1/v8bXkXUqnsHSPrzll8pRMBeoZ1n4l3UTwiUp335P5xDi+ts2Lfyn\nkpaLW0cdqHQjL3BSXmzgNffsicMV/+kmNTzGEe35JxgJpjZHLDrUaTfN8B64\nVha2koej5p2Rv8sEIj8CrPMCROrJp3k5VLujT6jd8XaCWgd9KUywUURxiEqQ\nAznO3Ii014arEN8M1QEo3PCp18dp1OmUEmQqcBHtjvIu2WCsK7ypi4H4h6kQ\ntThPMJ5D6mgTHidSzGm6OrMntl/ORXO2Qlg5DLE1npaXzIYltdXUc2Bq2Oot\nUianCpzWKrm+6sGsrSdh6si2eGtbQ7Bb19YM8PP8YIMp7OJ3XeaCvkHMZV7F\nKDBZ\r\n=f4hm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"df3f184ee9ea1367726bd52dc4b6f130b8fa2c59","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.14.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.14.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.5.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.16.0-next.0_1619175647760_0.024313266087750085","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"gatsby-recipes","version":"0.15.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b0bfbd8aeb95298b8bd17eac975249ec6219a401","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.0.tgz","fileCount":152,"integrity":"sha512-obucDJnWXbOKoxCfNdI9IZ2tXZzfvp8HkRJ6T2xNX8Wwk9F/UuwoQAvWZXdfHR9+rO8ynRBLMPMRcszKa9x+iw==","signatures":[{"sig":"MEUCIHwk+H1EoEDl4vJUaB5ywfFGjXgvf55f9nj6tT17HPnoAiEAkdz8STDBXl/WP9Be1re/ctwkdFhEqTUEFwz9XG9Nq2Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiIVQCRA9TVsSAnZWagAAzlwP+gP1Yvb4Spymr6CYzV6R\nld+64AOXwO4GFMRZwNpMwq8P3su4Bd2xxJ5YeNBDdVf0uq+bkusLaL/op0oq\n9Ky3jfMP+a4sFniyQM0eOO9Nj/eC2l4noQwBj+2EUY7gsSZ2Hm+lbeBgxg1W\n0wBjymTY5Q7N0iow9TZVugQSGcpRa74MAtxB14TfBxWGOjhRz14xS+oC7gs6\nCbeJdKzvjdt4I1pXnm0I4HMFf0oGrZeTmCu90jJJg7gWNgI5euN5QQUKdFCC\nvIlqNkyylz9LE7UEYVkeq5hdTKRv8bdxz4OJvZ1QkUfnHRO7uUeTRFXoh/or\nD+X5N2872R/dv7kYkX9fU/OqteNUQ4TPK0ASMdf3UUJeto8pXWqSK0JqbO5T\nesdhq5T4y+fVKL7+IQS5YqTBLWr5bx2dZq17FGneTL7R+HsVGsSlkWgC62Yy\nl/lyDmeDqjvXgJ4HFRAGQ5GU11mW8l+3DZfMbAumz9Sz7Bfd5BpXczGUCwsj\nHCg8dkFAQA77OusTX4oKuIoHa6O3W8yfqDNqejEd///ijYzt6gMGshHel01j\n1mB4yMFToDwz3Q73mmc3VXFJI6Bjww2pCT82MZRqQfduRgwc6ecJU8FyF+g2\nQMo2b5SWFsn1gSKXTSlPg3928RsZQ2mMexTNrx2c+8t/gAIsi+ZQJlncoCdz\nGhs8\r\n=ZbsM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"668aa435a3f4ee70f198ea78bda83fde39fda21e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.4.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.4.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.0_1619559759090_0.07204365219144959","host":"s3://npm-registry-packages"}},"0.14.0-telemetry-test.55":{"name":"gatsby-recipes","version":"0.14.0-telemetry-test.55","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.14.0-telemetry-test.55","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"39ebe31a37d985666bc6de26b36ca68159ec56f0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0-telemetry-test.55.tgz","fileCount":152,"integrity":"sha512-ZI3gSzyR5avX8Nroud8sGjp4Gu3tVGWCjdtkhSIM0ego816ETChrNoix65KrteGtr2/QeJjEMLqmyy9K49sUTQ==","signatures":[{"sig":"MEQCICcfAi93vRU75ourF0Zb3nFMZAU3fJqalG1R2V9JEVwrAiAW3mQAaNBXlnSHNnnxDrmtVzOSryYttr+JFvDqRbPCOg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgj/0uCRA9TVsSAnZWagAA9sAQAIpZpm+OubikemAdNuvi\n6QY4D82/M39UiHj0JXxdYFOfsSTtYy4lGXDSo57S7+nfl+Cl/Qv/6vChSBV0\n6SoSmCxAJ4qZkww2FIO60n08xZ88uZyEq7VuChaWNCpA0Gck6GnEKzYMXUQY\nN2FfQ43lLMxH2x1pMRGj8RFmtFXRxGFeicUPIaqS0+29Yi088rlDQqV8YdwR\nGagJ7QKrE1d/TGDEOLJFArUp/ha5YwbVu9KPKQOK6KHZMDYX2h8uvyVymh9c\nsEUWyQmx355r7j1AaWMjksZ+HmJissOEc5cVua0MqP6GqQq6Co5EN0FqqFui\nGZ6R0Z/l3ZdQy3Ewgme6jZX2PiAJ/MgKW6i1WnGmNpDuED9Hd8m0fZTB8FE4\ne0cPrXX9BW0+kbIKIW5yhKs+t901Qq+QmeEsrVBtOIxFSVPT7OYCM02TQf9k\nzTa6gwgiPCfqeqenlpdMN6RNT4vUS/WVAplKaQvvFp2RxbTDZihBwshOwYMG\nRCER489hvokmVcZAobHRkT/mzpIg0i57VcHzISBlPaIVfBLCguz31Nc75+gB\n7wRFewgNG+VDW4Y5z9u0T7A4n++n39p04+tOTlnlzMGtlYxKjhcI7x6wBdIc\nxrQwUUHgzT2QA3fD931PIhXyDLuFjHzyCSvaUR5fOL8gkHaBUdSSc7zMLrge\nU15l\r\n=6Pib\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f514204bc5c9ebad0d24d0028acd8b101b8b9f54","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.14.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.14.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"2.3.0-telemetry-test.55+f514204bc5","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"2.3.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.14.0-telemetry-test.55_1620049198202_0.787895017919555","host":"s3://npm-registry-packages"}},"0.14.0-telemetry-test.56":{"name":"gatsby-recipes","version":"0.14.0-telemetry-test.56","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.14.0-telemetry-test.56","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"ascorbic","email":"m@mk.gg"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"84131fdec646b60a5f3353287adb90da801e5952","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0-telemetry-test.56.tgz","fileCount":152,"integrity":"sha512-DCZXI8F6NktU/C2QkgYwnx6h7cZfK2nYw6qs53CWU8h9B2Wa7qOH3s+bLEYhoHSjZIrNxmCwgCq+SBj0fZKUYg==","signatures":[{"sig":"MEUCIDo8wK1xUS7p44a7xKmBSLsM2tnBVkJwtdl3djQheDlYAiEAw590AY1rmuPaE8CxGatj5Oe5/rsItKpyrKqfqAGwCcc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5562414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkAtnCRA9TVsSAnZWagAA2REQAJpbs92KSpO0SkP2WgD7\nVjTNkLgYJvrc8piI+Q0cgJQDHp7PS4TiskHiEdyMtrO4bq203jf26/JX61A1\njN0okeG11S/ayMbaSfX1wt3hKC28rsS+ik+qm6bD8I4aytSQ3ZAtt3ZfQX7B\nKp/SCFmqviQlsWDgQ0BIO9YXIF2hietiuHUvlq2PQA/c5T/eW8mmGsBAAHZG\nLmNF4tawOcrpj0TxKocJ00bzyoqZQr4WowSG91mzWMZEzy93/MNRJwJKQx3s\n1OBlMIyfnzjStWAM6NpVeg9LhJUS/QrDnV2ayDvsO8FshqwQ4qTkFh1URY1i\n/5L1auwLZpQksXXrBkkaGTbpVLgRLPDKn16aNXvbxjejhai+eUksRsHnc9fl\np2kwLeng10Q9+hY1MAmKVaaPcIbDuSKVHtBYEU23feDdqpvfYeUA1i3OSRZP\n7dGHLvLwD8gJh3DiEG0lW83Wmw9Ux9+OAvuWbqmy24ot+BetmbJkSsi3i1QL\nAt/Gf/6wbVitDO3GPLe8z8d+YvUxRaQ5fcvL1UVZFXbImPNC8T9Ps+yuSC9C\nhahKtQMYKTzyJw5UyinqDognsicJJvQdisLvzxpr6484uH58sjP22caM2/kx\nJAJx098R3WLE9E9veujBrzmH5HGJYsN+F/Bva4SC8Ki5qvao1cd4PXoOa1J2\nSw8n\r\n=9JBk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"0924e97e86a44034f14d56abcc5829aa3c0d6749","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.14.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.14.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"2.3.0-telemetry-test.56+0924e97e86","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"2.3.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.14.0-telemetry-test.56_1620052838865_0.46272631503289374","host":"s3://npm-registry-packages"}},"0.9.3":{"name":"gatsby-recipes","version":"0.9.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.9.3","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b6fd832847685a757bddf325dc9e7fc7bbe54009","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.9.3.tgz","fileCount":152,"integrity":"sha512-ToYeGCica4390QFWsW6+3DM6hhkpKifUEFoKDUdsQGw4rmD8aYndj5oASKIsvPAU0GUbxe8IDsDnP3V5iMtyEQ==","signatures":[{"sig":"MEUCIQDWPnhfXoJkAdNBmtlsm7gIoB1xWOnhMDvz3W2YDbOIuQIgZ2bk+fNI4p/2mGRyzshhB0kBCNNrq7NMKRqkgFM7oqA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5517245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkS6/CRA9TVsSAnZWagAAmTgP/3BEY/2rVTvZJpHeiezL\n31+uQ+I/nFfqJfwAYI/kVLXC9OicoieX1eXf3ZkptAbck7FZaTPNmjdmEVex\nrSzpnXWCsyEmYNwESULeYgfV4JbPiEYoAmxSMXmQU7bi9zYAILvbmqBxLykJ\n9/AAOEf8TKLXxzndyUeaWADLYTYr9X5JgBYH4M8qKxyprNk73HlKpfze1sBI\neY3oqyei2SRmyaLbURMVeAH+eHUIqcxnnZ9b/VEnucV+kzvXJ0z0t1PeuUAT\nrn8tg4deXGBxf9BNuLgvl5Mrwqm5hmatob7X4cY4MNa5rXym37OiA5SxT5Tc\nMxfCtF1g6DUP6NXSPY22OBG70GSsstIZ6HD3TZcHFB90zYPvC4YLHtUwpX9c\ndZGjqL37fcMufusiXT5vANrbdrMCOUJJhaJaIawSNF6Z5pxoiQpoiTPJWMs0\n1skNYpbQw7Skb9Z9fp3uOkwwNnHgNYHlvJYQBRHPJuLnSsaNY1Linz5LKJZz\nqv+5CIt9nxIUp1a0I897cBptXrmIQxyM1OZd0YQc+T8rhle7IDPtE1ujuCLR\npnKelu07G0P2IiiChB57piYuZED0/Zo1ykpCQhMTcK6fNoVyb5c24CwboLOS\nqAaGP9qOUtsTZUUu9W7p630uZo1ATN7oIqb0ZpLWzgA3VCOXDHhTGY1fWkbl\ngeJQ\r\n=uTb/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5a654faa25c5fef5ab058e634fd56378a26c067a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.2+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^14.6.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.2","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.20","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^14.6.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"^6.3.8","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^1.10.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^1.10.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.9.3_1620127422807_0.9911619767303332","host":"s3://npm-registry-packages"}},"0.15.1":{"name":"gatsby-recipes","version":"0.15.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.15.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0e99eb0f66d58b8d4ae3250ac19a3b3c6d5eb7fd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.15.1.tgz","fileCount":152,"integrity":"sha512-GyQbITic2Id1rkG7UaQ1ALqAy/rP1ACS90jOM8iU4KTTYMfClNRoRcpOFuPGGBhNJ71Oigbk9fXDCYEHy8IZdw==","signatures":[{"sig":"MEQCIAQUsOmCH6mpkTMFznAamwY0SxNVWY5FFv6kj5B/jYZ6AiBkxLhcxjn0k35Xc1cSf+dsJ5zK5xKFDw8UFZX6O6zv2w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkYF6CRA9TVsSAnZWagAAwtsP/2H3VicTEM8iObKWfHTt\nLY9OxrBHJWFMGudO0glYRjfN3j5FVI3Npilkw5vrAAQnugImtcwurYbjRaYb\n00rphq5FPaNiaxixXolmW+W4xuRIyZl60BLAvSYtcgAkOH9EzR45cZLLjUsj\nIcJoV0SB7vZ+/YWHmHSlph3kQV1Qck7TarvsDAlcKYOb3txe9NRITLkhtuxK\ndF+0tQNrc814j6RNmmRlTBTMeJwdskzyOB4id24VgXLt+pfDeG7Gp7nn79K6\ngmdpjrSA8znP76gexFLxIayR6UZC+KQ8iTgz0XbSeqXKzvYKiguWUUnoDjZx\nGP9UAnE7HDrLQo7k1yqKsFrkQofqp2GZCqNwFUr96Gd0mhcgArY+m07pOzLQ\nURkJiNzuB+N+AtOvHKru+RtXGv5f2PDtiDoNN3y/3yR3skI415EGBsaqx+6a\nj23120VJ9scskKaoavQ3GWx2sXKNyYAndwDE00oktxf2DXY1HKn3m1/U75ZH\n8Z1jzgwEoXlokOyorfSfX+LulhprBTdN9hC13hQyoNXQ7PBgfhUVLb5S40Hl\nopR01jkTJvfiUd6fzSwjszGmcE5SVbPUziLL3NTj1+rtw68uug/DbZKXzB/+\nRu/meXtRGaRuzzwR7JgM+3Fh3E4APV0MAV3+ZtyYiODoUH6yko/2RZZ0SEnP\nno0x\r\n=V6nw\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c583e74bfccfd99c5629aaf1566fc540573e845a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.4.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.4.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.15.1_1620148601787_0.25805810435686305","host":"s3://npm-registry-packages"}},"0.16.0-next.1":{"name":"gatsby-recipes","version":"0.16.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.16.0-next.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f4784ec0f82370a2210037c2440f22516da02fd3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.16.0-next.1.tgz","fileCount":152,"integrity":"sha512-zAJnfjJrsyWwZyAbNFGbYEzopKpUyzYoB1l0CSiGEVUACpau4DQsEJ36Sv+d5uhZA2/cCV0AYUCWv0qC/yP3eg==","signatures":[{"sig":"MEYCIQCWhGAeds43Vlr13qPpUvoXc86Cam4IH1XryfRjSldx4AIhAIlqlPirPAkkfcBbQeLrLkk2v2RuPvZO1DsdtvCitECA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkj2UCRA9TVsSAnZWagAAWHgQAIfvLoVKEYnta8nyzkpW\nA6Jr/6vBaO6pXGy9I5sVwXaiOz0ZZ4wUQzyVJ5kcqS9g3D9AFxPVlUH3mXxu\nEPuBaf+Y+wpn9VGpKVKR+zmXrOVE+tHN7B9H8Zg8qwS7GTTpjiEXu0G1UNbs\nXrkWiPsksXRUeZRBca6IiEL2F+E6vm6448RaycP/zKATb3jr6spCdg9bm5cS\nuG4oRjL05sYYCEOBc3k2xQtrdXX1/KI7S/uHQjdyPkTKZrJdn1hTVi6V2E4T\nnPKUCm0jL/5n8bea5I/BIlFFoDytsXlIvVSYbnLRzsk1nzUZdzPV/pMXTl5z\nnHCeZdoj17ak1TlaCM9TObYnHP+lQk7Ry4YAKRA9ldvqwuAPelb2HtmQzJAP\nPRh7dFEYn46J4pGXNJiEVDotKzBGuF58ng/ZapUQGCjYvP5RB6WDoeiZwN8y\n1kW9kKi21cyowp2itdCdknJfxe62gFeqiWqFpHDocufndH97ulfLW2+TSrQo\nx4i1lwigezMcqLmNy6I1DbC01bMatdFLC6DKeJ6lHFNuX3sbSGxkDhpbntLl\nn/JJsBIcrURolM5VcamP8Ypl8UQFLdB63mHuK8SxnJsBpWXgVNoBReciGmyU\nOuInJ+tNbrid0lXPxoiL7ky+4YIDu1SOqRUR0bB6PNZZA+aInIYJbQ3k1H6P\nlR7l\r\n=RC9b\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"27f54d7268fcc95717301933a530c7963fab27df","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.5.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.16.0-next.1_1620196756007_0.6717735004941388","host":"s3://npm-registry-packages"}},"0.17.0-next.0":{"name":"gatsby-recipes","version":"0.17.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.17.0-next.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0e4cf4eba884921bc668d67a52b56ca0b197a662","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.17.0-next.0.tgz","fileCount":152,"integrity":"sha512-qA3Nf7ueZZ8JBuJXQ5WR0SgvVUrFDCA/J/KvDciaytnGgcyJ4E8pAwzAUcFVhSx3zK6vN4ER7Idh1JyXvj01aA==","signatures":[{"sig":"MEYCIQCJpWTLz4UdYzjm+eOCSs5D+zbpaTk+lhTXCoU3bFluLgIhAISggDT9ah+fKdMPK1pED+/Y6uWAkVtAgjK60gI5hMUt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglDNYCRA9TVsSAnZWagAATz0P/2bqI4btAJBcfE1Kie4W\nl3gjQzP80AtEh9oWYCWBoekfhZc1a+i1t41XYW6eyMdUqjMsz4p7LGMyFSi0\nA8kDWPBQdfS29/cWODwRCqiRHBmcr2keYZ8NDN8A3QxxgbMJB/8nVVkxsRdi\nRMIyiT4TmKE42Max7yid94KZR9gSGlTpmP1L6thpwFthJGp43Rtu7ICNb/AB\nSUu9v0J3JvcDhCnCcWrS37iCPWa6yUZ8Vk3hCLfWhg0QT0S5Lbmb0ycM+54L\n5KXAE4BiU02F9+tP2er7wK3StHMgGQIWeQeqVq8fk1Vov5NqsCEAdJQnfhzB\nc1SnuxFxsdTbH8TTYwdhUsj+hNGPySTqyA2AyeEnvLKSZJtMV/FzgiDGAkny\nQNdqW21gQLXzsyrAts00+mUsSzhUNWUUuEonQmDHwVQb1odFu20+q2MbzrhY\nsmzcyAv0jzLkn/biiLM3qhy1/rKqv4Ms5qFbOIdyB4jYVDzHiW44ROFXX3Bh\nFLlKdgKQ163aXVDGJPaL7ri8SBT8ilDf+JQkaNGRmUaIB30/BC5MaAX/DLlV\nH4JbUvgRj4NqEFRsfxGL0LmW4VxjZkBEKouxuFf7uWGEmaxB7God+XbJcjDJ\nAmBgAAFioWIul4Bq1ez436xQhoxm8qgyuJv0wTn31Z2afTVFNBHjHuyzScEu\n4+vG\r\n=1cZ0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"39f25b75661c13b9df8924b421b5e2dea3cf9070","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.6.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.6.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.17.0-next.0_1620325208234_0.23535178019611247","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"gatsby-recipes","version":"0.16.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.16.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f45e13e4e945974bb9a6c09ac3691689e8cce02b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.16.0.tgz","fileCount":152,"integrity":"sha512-xS48KK4F/CLxlaHBq4AbTL6/2uSdfTdZuSrNPNPTvNnm9FMiot64e5SZpnZOMz4Wnts5pGPAVqnhfL37iy6V1g==","signatures":[{"sig":"MEUCIHINIUGDRakg1Lg4R2M+BFC+V+IDApYT7FcF8Be1LTZCAiEAk4/1cNn4+hNrAnBsM3eOBKRmCkeY9dnZAdiv/uN9Ae8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtPiCRA9TVsSAnZWagAAUOAP/2QkfViTIEz4J+Df6Ie5\nxx7RL/f3gDrYwift+gacy+8/m173/gB7QMoznAT+zn4Rj8a8M7t81Smpo6Rw\n8oJnxOz3QwY+GsuVb8938sVxhB9J54Z0XswCS9smk3RsjgOL1gFY8F9bO6Rz\nnhfeqZyY3hC2k9sgzunKSAJIUROBGIBEH8YH6Jtll52G7MoU6Mr7MwyvCRWR\nlPvVr/uBtc6prtFia1TVJnK6G6ZUlDCQ3l/xFsVHpxs4p7tYZKLrmUtxUIn3\nG44Gochmdftodb489bHA72PapEExmSTGbKZBN0QJ4TK/5ozjQa75Ua8DLbyN\ndKg1336j5514/axQ/HaxZP7ZnWL29TfQ5r4ZG6ezgrSjzqGFbAOBwdbvsMNz\nI3K6zz9RQoDx6GbvtyphJrh2CpLGD2N8bt7AvaXOvepag/cacxvrQeFf1VXU\nd3VvSBUvSVNzF8lkIkbqAmc2xb5/TpNqQUsirNOE/yI5EWlRotwnijl4qplj\nLTkS9gSOqwAGSzFBnGi57qu85KrsU9JVNYvSRfDC8ooiunCK+yJLGnpM+F1n\n3Had+zjYH5+xDXquFuUscwrf+QJb5P69FyMBxEi9Dw+t5y2h90w2xjVIq0MU\nbT+geKvCF3LdJlR1jxfURwtWi6XMcKd1eWBsl97nOadP2Y9eobfoqChnpkSW\nExJP\r\n=3oHp\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"102d92c5ac344bd82ed1767eff6849bd29dcafa1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.9.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.9.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.5.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.5.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.16.0_1620759522024_0.3860307462507082","host":"s3://npm-registry-packages"}},"0.18.0-next.0":{"name":"gatsby-recipes","version":"0.18.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.18.0-next.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"dcf15dbf73f7645f26d3cece209d19d889bfb0e4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.18.0-next.0.tgz","fileCount":152,"integrity":"sha512-oQzslL3xmPxJ4EaoEePgLG+mK7fPdAnJJsOFnBXwuzqMkbTedDgj1DyaGLtBpgLRFGVA6UVS8i4giIx0xab/1A==","signatures":[{"sig":"MEUCIGQNfMhmxDczQqmG2d7l658U3sjuhOyXnFvJWBW+OGWFAiEAhxnroZZmt2NCMGbWiejthTZlzBVRT8eA/2a0G0J7mGA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgp2mkCRA9TVsSAnZWagAAIj0P/1eeH98cy2LSgqPKhKJ4\nywWl9ST28IdiX9m4jGCnggMhxPusU1pHVTlUDYZ6q1yGork8QSUnaeA7Oke9\nGvvU3MKf916TEjmqzXUnfU1J2CmHqJx2rKdzeY3HAJa73C1n9rFOim22JSke\n//72poys0back71pc5DyAmh73NTx2g+VMsFXWT8hQZ8TCxBcUtdN086lGuh3\n4jnfXAEhuk3+VL7zXCjTkvSHeNsWqH3/7Onsmyl+K7Gwl72Xsiv3H+S26jfy\nar4/C1tQ1TgBbr9OHJgqkQzo4AJVIqZfl1XV14LeXSxkYBkwrbWg8ju+2eB4\nzMpT6WKCNi+IxKfRRkVQ3QVYBPHsRLWD8dpXCqidFE+JQYADZcjI/y7yWZgA\nuXIVIYfY8bROCP49RhJCoBuqI8e+wMdBsTvcM94XQwb70ql8Z6fvjxB4HNAE\nqqx5ZCJrqjgoScaSFVwkyQHzIZtqoIlsnEfHFpQunbeHAQj2TxMO10UFRyzy\nPrYyVFB/0bI++sdBP3GVUmHguER0TbAM8TCLh+edM3WC3igRvNERhP5duNg5\nCXxgaD1NeR2IkE2QMGbhLCnLVR5Dy0Q/DqwsOBqjykZVV88GcwvefuSxnogF\neImA+Bv3lxSaWolrUifX8p1tNHNJYLLAdU2MMjZcy3KCXKH+4McClC7U5SK+\nXLCN\r\n=Rius\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"86532167e037de9bb26d67e2d4cc089e5b58f0d6","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.7.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.7.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.18.0-next.0_1621584291853_0.7119423691114313","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"gatsby-recipes","version":"0.17.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.17.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cc3746aa8c49c395fc9a8709c39640ff080e7704","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.17.0.tgz","fileCount":152,"integrity":"sha512-tC2xUa05zrUp77DTyQE11ILhFiqv9JYxBHhh47b7tJGiLAU1XhjxZH0uFZ109r9wEeZjxTYOYkyoiTu+0Ps4pw==","signatures":[{"sig":"MEQCIEpyaz4rulztBuT490USHq5Yc4/l4ATUMPKd+vW+L9NTAiAze99/yjyEIEh9XwX4ZZI10T8BLp4Qb3JKF5GjnXtvcw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5250862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrSwrCRA9TVsSAnZWagAAgqcP/0WpWRQX9UnehjOhcei8\n/YlevDRY+9PW/HMgangwhXsP4RbxdyPzSHInYhKQ5B1rFh4+2qTxCUSh/Pk8\n+Y9A2Qxzys2O9KfTveYcWrpMyBiZZ1sEwpww3XDnjPZ6N96sxWCOQ6EQ9pZS\n9dCH48o6wL63QAiuPPUi50ehAZrcPIQRjnXOPAKnrBzA2dkVPuVgRTVGjY0A\nOc/iCKX/Y863yvMVZ5fgvw73HUSMSbVfyz7mF4HAN9XkR3RMd48VzWs19k/F\nHjtHtBPnI+U5TqZ0ByUm9ewLds71/IYVVRnlTQoZZ6EBeAq+FlYriGda+fDn\nqVWIEo01BrUCYCmkNgNmK0EZGYyBwyAy5ijffiGSa49Il0Z38djUz3CzzbBe\nGWwWEwegzQzQurgjpYq/Rl799o0tct3MBHHoki83GQ0HSOZMedCNXvyH9LjK\nsu2FKVYjDC3NIL/ZEebNsJ9BR1CXFWEcikqyJ0J1QNqPYMhwNyB1i/9mYhuT\nTvgprpw2XrhBl7ctq4A+0aCVHqH7b3kzqI7RwH/0TD2qhF6IChDCzAZkRanm\nSzorlzoo9kF0zDV/QaJK3tXr4sB4qJAlqptNUpbgU2XzoSBQXj6GSnh51goy\nsIgY8e80cInvsBF8cyYm7r8xT+LnmGDSjZBycy7oPRXfRzSVEpB0BoJcGRey\nrJPL\r\n=HyzE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"4ccc53ff72dd4e082873d7d29561ccc756bda985","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.6.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.6.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.17.0_1621961770597_0.7436004414576076","host":"s3://npm-registry-packages"}},"0.18.0-next.1":{"name":"gatsby-recipes","version":"0.18.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.18.0-next.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"39f90f491e06d2d5304d26b9c7b451c6251ba7ad","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.18.0-next.1.tgz","fileCount":152,"integrity":"sha512-LyWZurW2GAdO2Y8ChUd9gLDQxkCU62EQw8JNyr9LYCqaj3WIxG/zO5YTUyU8dpIWFX/hdfoJQ2+TN15qgPpnJw==","signatures":[{"sig":"MEUCICutADVlKKniNOD8puc8CScPOsI3gJTTPHlsjpdmSF3/AiEA9tpUWP+GE96WCK6PccQ1MfVHEKM9zusRbOmiROe6pPY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5251089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtVplCRA9TVsSAnZWagAACqIQAJ/cbSJqZoRaLqRxNP6q\nnZbMhDwDUxdoT933pr0EbjLZB19edi1yBcmiCgn4h6oH7Ghp5ieLSlNk8gNp\neeHmVpsQGmH5PaEbXSDv/bQGdGJ5jYuN0BTLad4foK6gsMcTHuZ/xvgjXk8C\n6lRhSqSnnQDwzscCFRvE1iir2GYjzHKluydOfrN8UeK3Up7pcf362E4c40Ua\nY+Kjg5bTp5igoxG4iubCNeSfyGNgJxk6SKdWKH7v2z4HvuCk1HZVa4vyQVuN\n6viMnJv4tziRHhqIx2ZTbdAH6EXbFzYW9qw0wIsSeDnrjfypWofESNQKRMYL\nd44JMuLdPrDJR4ic8wbajZc4d2ge5a6sz+e55BwCTJw2OhWHqpgqOUed40fv\nDFmtcFdVKlNzM1konmcXmjLKVi4KXO9D1LMvmJmU/9VzTV99q3YV5GZlvp7n\najZOm6vHa+P05nafXy+O01G7L+nYqYhVA3+CBCjjARS1FkcjH8FelOuvLU+z\nSQbN3Xs/1hu0qnHaaRlPjcvUa8JZSojQhD6TOiwelvDE2w+R7GitIu2Ho3Q0\nF37BD63SvckzDKCB1LpN63neKoggOgbY41P1jaTYlgXneT4F+zoSsmfCDKW4\nncYitxI9w/fgjA8X976Uqyb7MmdcvmQcxBZnfv9G1fKr4Oh1wdOW40PMWopM\nHGWB\r\n=RPIW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"30d212d506cc30ae32a21b48376d704f362ea157","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.12.3","detect-port":"^1.3.0","@babel/types":"^7.12.6","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.10.4","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.12.5","gatsby-telemetry":"^2.7.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.12.6","gatsby-core-utils":"^2.7.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.10.4","@babel/plugin-transform-react-jsx":"^7.12.5","@babel/plugin-proposal-optional-chaining":"^7.12.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.12.1","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.12.1"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.18.0-next.1_1622497893115_0.06043652663785215","host":"s3://npm-registry-packages"}},"0.18.0-next.2":{"name":"gatsby-recipes","version":"0.18.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.18.0-next.2","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"37aa4093f7c707411d8d2ab1b6ed9c128b31f183","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.18.0-next.2.tgz","fileCount":152,"integrity":"sha512-ZQuE7viK6ByXIEGNaR+FA35v5spYcde2FiBb2HWlAYIknq3tMe+cNkb4X8f+86E5e7RynTptRnva31T7NlAuFw==","signatures":[{"sig":"MEQCIHpsA6coOiBxULGRUa/SaO9GqvdeDlWptiIMfyBGAIoOAiBSHfyJse9UICTEUCgPaJwEQAD+YDvSbfM+CH6KDhNt0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5251282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt4y5CRA9TVsSAnZWagAAbtIQAIfPYgNDzOzGJr5O1NlD\nG1XDd/QmoloJke7BtQ6h4CkkWrmk+CM7YxhjgBJf++lKwI6pjTGog/QwVF0r\nKDneUu/WBSN1tT+Y/GFM6ERJc5p+at1N3HQypQJHsaFRwtih2Eq4CyQXeYny\nOvLgiB0etTXLz/C2iDvLcpfXlJbYONCzoAoX9iLtO+EbtZY0pK2qk4RUp0ui\nWTwFOA1el4EFzQxOl/EXCK1Ur8ewPsj3vsI5r1x/0JubE1ZfjNEmFvYYMZqK\nnfrtJApqoQ4zwmu14gF5vceeABHK0PtSO8zrsajYHq7fia+0XgKAz5aGWWi0\nI0YEvEMt+V1teYVHewTne+5X52ESD8gKTI3Q+p41brsL5ebnIQdvrQ99MxWo\nn1pBAGK1sK6xzibU5Qn1XkfGClRtTf/N527yqEjXpbXinSx3bcyqY1SM7Qix\n85E7RCO3HvTAHkVtdgCd8HevJq9kwO4uwq3MKd7IATm2X+uJj4gQ5i4ptYNA\n2nJ3TBV4p4HYNAyxgx73yLxWONIccmHvP1Rru6O0eG/AbcoeXSgPbFyz2CmE\nWZacDyllmayBLDzaqng5JsdTZr3DOgAHrnMx93ACHQkI0zb7zDrQtlP5/mML\n1CiLO5CFt4be8nEURwB0CAXyfyYxEKVTCNxuXvHqm/43sAg1kTiYKH0Xp5jt\nyshx\r\n=6WoO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"6f8646c3c4c136b64963f8431b253bc3529e16c4","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.3","detect-port":"^1.3.0","@babel/types":"^7.14.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.12.13","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.3","gatsby-telemetry":"^2.7.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.4","gatsby-core-utils":"^2.7.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.13.0","@babel/plugin-transform-react-jsx":"^7.14.3","@babel/plugin-proposal-optional-chaining":"^7.14.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.3","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.3"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.18.0-next.2_1622641848933_0.24720497762165605","host":"s3://npm-registry-packages"}},"0.19.0-next.0":{"name":"gatsby-recipes","version":"0.19.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.19.0-next.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9effe9ddb2f86465349c07e88eb115c02b1196fa","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.19.0-next.0.tgz","fileCount":152,"integrity":"sha512-mv/VJa9qpP8DzoIzBOB74KLcA6WoyYQ5m2Jc0nTTwvyS+6l5ULgDYpKJeCn3QDNifPvkm0CwmtcW0YIaigwcvA==","signatures":[{"sig":"MEUCIEF3eYq1b8iWJZWk+paijtv8D+8HewxZa9CBxwu5PuZVAiEArg5AKGT7EA0Mp9PMPCaB0XvdLa4kRd33zKiLIP4+q2I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5251474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguSizCRA9TVsSAnZWagAA1esP/3jyjz3HnoyzlS1KaOuF\nYbalRjNUzULFRJY/IwzH9qIvTcLhTwJRJLEssDWbh6Ypo53mkIQ9mc/M3E1s\nJTf7AD3SAiqPjQt4v3773o6bt7/JmhD8buXpZuQsXSfh7cwLxGSDVB+Cg178\nfodq0p3Vn7lAl3JdJJ7sRpPUJe83EtLqtZRzt6/BNCel1s2GeXwqlbQK8ph4\n2g9YQiFYqIfiyW4Ia5afsUS23+fkDGFfCc60VdU7QfyUuIHePYn7nc3XJM3j\nEUgAYC3fMTJXMXoBmvMppcuAWhSg6J353AvsLJACtFbLL1JVZeevGECWY1Fo\n4Zh4hie+XE+6SJToLNenwgZ9ZbGoKwZnoj1OxZK/601WKwDi1elUspIlsL6j\nzasipWHFS+THYvxDMbwxtSFiFXYl+HUPsm4dcsvo8VvUdBT22V/tu4mkL0Ab\nv6rOUdT6BCDcTfHcdEDKjzRLhYIZ7qGDar2MDN3OsouEMtFvVXJbbqqpioPj\nWgVvNXwyREK99OsVje8FOD+MC6OiN6Ae0b4Ek+akxCxQY5DQmGCMHm8AMq58\nroU/zpQ8OIxt84RnrRBCQcRRIzXx0YMERAOnRFU9+GvuTmQKjQBhoZw5gHr/\ndOwc2HAy6+Znn1SQ+5L41ZXjSSTrNG/KtlwHXqnv8YHg0eUFdgkIrMZ9UXa8\nHYFX\r\n=w8KT\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"74c8c6038d9773fc63025733d7db8cbf87b88ad8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.3","detect-port":"^1.3.0","@babel/types":"^7.14.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.12.13","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.3","gatsby-telemetry":"^2.8.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.4","gatsby-core-utils":"^2.8.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.13.0","@babel/plugin-transform-react-jsx":"^7.14.3","@babel/plugin-proposal-optional-chaining":"^7.14.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.3","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.3"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.19.0-next.0_1622747315340_0.6674088994811724","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"gatsby-recipes","version":"0.18.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.18.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"068cc5390e246f4883223f2882646857d445024d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.18.0.tgz","fileCount":152,"integrity":"sha512-HwRgeONOHFk9U+v47LAA8tKppsgdNGCMY4J+lxr9Yz3xojHjMJFncLCL6c1aMIPbhG2mtBuSMdcAppO/ZpgPtg==","signatures":[{"sig":"MEUCIQCqbvXDneMIOYIhoNeLf0TRH5ooXVpFpoc241D7il2VlAIgYEE5/JztEg7Mhrpt0DDAbKml2G7Nu9yzmAt+QPahAIU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5251439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv6aPCRA9TVsSAnZWagAAilsQAIF7i8fO63ogMaPc7Kt5\nRylZzquceLuq1WET89birj0J1bvwruamoIb0KzL6FmiDAwAUGnbI9BbKl+XU\nS5NtPuXLB92D7JFsJygnWYY1szz0M/KnwS+UH2KBTmI0t4NwLInloT+zjAA8\nYKEuoMeI8n+hg54Ku9BWPPVOIH1ItDzQS2wd+MHt9I8HKuGMXiCUkkyObUNy\nAWA7P4WKMCddaUztBvgBHZo77Iwdo2Dsh0h2cEQwNKZK3xsENz9va5tOv/td\n54vODXSBsYXEVzS3qZEx6qJ6X58FQwikUPkLdtANLnSsTFc9pZQSXmYI4WXg\n5239c5pFLi07IJMNyE8q2qSy3VEaYl7WjkDxe0CCeHvdK0thROhrFIhIF6I9\nxvCsgG5WxwXCygtrwRHO8smQZtaqyQRIOCrnGcBqk93peH3YI101sYbzGaMp\nFtoMiHkHXkM33JF19LflF6xwKHKHgvevI/PZhSb1UWnGJrq3AUv4m3dGcTT4\nQiW+7oefhPrOSitpZJGsEVLOl00+i8r+j0cf+qNEIXodDbq6+gFnZCa7VLwK\nrVIzWAGTSvBTUTUyZ6AHysALYbVAuDCEk/e7sTt2b+3AjjQfY58+SHRfSlct\nVRN5lV5V4arW2NbW1W8j1PZJ7ZE4OKa+oJhOenT8Pbk7FdOt6J+D5raSzLh4\n2e+p\r\n=uSV2\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"fe4c8fe552f32aa824ddb10b4c1dd48ea1b7de06","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.3","detect-port":"^1.3.0","@babel/types":"^7.14.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.12.13","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.3","gatsby-telemetry":"^2.7.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.4","gatsby-core-utils":"^2.7.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.13.0","@babel/plugin-transform-react-jsx":"^7.14.3","@babel/plugin-proposal-optional-chaining":"^7.14.2"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.3","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.3"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.18.0_1623172750745_0.48530064444923404","host":"s3://npm-registry-packages"}},"0.19.0-next.1":{"name":"gatsby-recipes","version":"0.19.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.19.0-next.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"51a3efc8e167c2f9fbe192e7bdb6aba69ca6ecf8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.19.0-next.1.tgz","fileCount":152,"integrity":"sha512-3Wx9E7tKN5RYOBoiHQW+XC71P5Zg8LeCpbzFShyuieY+QWEdeViWIotKemEXkD04UBXh1XPthTRe4Lcasylidw==","signatures":[{"sig":"MEYCIQCYi2PuplTCYsHdY/BUh5Yzz/Z6+qMG4MZqRq4NU9T2EQIhAKHzJ/dknZh4/tqporCh6AOKh+zd989S0PVpQ+0PHBbP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5253930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwhAcCRA9TVsSAnZWagAAIw8P/RjtuUJJk8F2ggY+eNOG\nHrF8j4Zle+Z3a68MNPrP/zhbhqYtM7PmYCAq8Qy/E6//3B3DofS3FZwbsU1F\n6jCteGfzNN22f+gJJShj9B5pmNNHZ78t5jVC9CpNzWe6iRfarIUE2VEfxAIO\nlOadODE1d2uFVI/KohkManN0/juTp1Vuktz9il+U8eYIi6V8N1VpxYiUHCev\nJSQu73q3bLXYmoQ5mK7B1ktwVeTWUjp8f7fZxd6m0tgJcFsdAq+f/3Qfmibg\nR+xZ/XzT8XhVSgE+2eaBWfRZ7GnEJvmxriPkWi0luvbI56x/xlwPokurVW4G\n17qgnMoyCFtO+Dk84+ODeY3hpBlmXv/cPeHrSO+VVa3mTyft+z8eNKJTfIFA\nBkCuL0Sin0AUfTDb5SqRTNV19OVLKj78mcCC0piOQyaNOBRjYjUtD5zVGRTg\np0EF4kHUH1Vh9AQTnVP/Scnt9ngrxuwVNj/iIMj4LcAV+qGCpZlLCycEGHQe\nX7PigAtceen4+7xC17dUqRMspUMWvhs1Be2hNO4fPEa8zgwYBaJuZrlh+5uy\nD7CkPZVu7pRCc1l1qKxvATR1Bu/9E4I7RA3NVJ89RCzsobDC/dl6P4fJpIcS\nxegWIq90BFpkhriQhn0grSNCG6fjrUMQ3b/5Ef3LVUYQC8EW4qypCWi/1DzK\nXj4u\r\n=PnJk\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5b621bfbca9e107d05bbe609e77cc31eb64da3cd","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.8.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.8.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.19.0-next.1_1623330844216_0.9929352217207388","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"gatsby-recipes","version":"0.18.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.18.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7226234eea0006dd1dce60b21395b458739eb23a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.18.1.tgz","fileCount":152,"integrity":"sha512-gjtCDu1qMtQkjmA5mrHw4orFxkoUPW9VnyVcLc8kcGAjJLR3MTKeECQL6p0SrKHgsbJTkOJ2BTvzU3R5jENBbg==","signatures":[{"sig":"MEYCIQCCd6hYMKKVrhH8uRXvgdE7F7V2qbLRA8RHdp+ABvKGzAIhAMjNfD7OlzBM7X0XQv0SxKunutr/PM+fVz7rf8tx0QZ2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5251610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgwkKeCRA9TVsSAnZWagAAXegP/0XjEf5/Al+fauger/wY\n+yBmxg1a9poTCR5HSRoaSwiXcCyhyACBzfHF2fMy6eCVQutOUSF5vc2FJFJe\noVBqA/EYo9kstthABlPw9sXxTOU+QVwSSggKzEKZkru4Eo9L2Z1gssIRvgIf\nd0TC57lb7bhBdANjkdPfg9C3MqA97N3I4h2NoPUCHWBA7us+bKXw8nS6VwaL\nVSGQFRD4mE3ruNcLh4aDeHOTYmx9RYIyp/kAAidP3OGeWH4KLFuiNMhbwBBE\nlT7HUdU7BB4BucGutZO8B1Y3hzNiAKv+hOSWWTFKFmRIWigsmSTAJbO+WONc\nQ9+D2mP7M1uX6mdz17Q4qJHCG7xST2MgFgR3iTrcPIbnLfPGwct1LIiprlab\n55yrVXaCxnrOSwDxujnW07ljNOmK5NmVNJbfY9++bpBZDi+M7E4sIxuCAoc4\nBDcFs4b3BzqTysrOUzrO381VYVQCNHiY/jeuujCsuBSH53NSC15NlMduXryA\n419lKcixOixNH1iMRa7KmyDoY3yhtErR/fk89+KJNVmWlKgxzZ8ofWhR9DER\nDrWNBR3vC7FMj/2aLGrUNvA2ozE9hD75C3bgmStMRs4owCNTTdu44mhyanTr\nfwXTAIFNYm8T2pgD3UiIMDFXDNPw60gixQGYHI50GrJcVS43DCX7BXIWIUTz\nlxyR\r\n=wsdL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"3be9c246afd928dc72a873567d5f6e3bf61e82a8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.7.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.7.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.18.1_1623343774157_0.7890087825451311","host":"s3://npm-registry-packages"}},"0.20.0-next.0":{"name":"gatsby-recipes","version":"0.20.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.20.0-next.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f358da11e9ac2f647e585610d1c50dc7fe7e7558","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.20.0-next.0.tgz","fileCount":152,"integrity":"sha512-BWrZJMf42o5YrK1iVU9ujogsCvzd6D/M2nhy5KaQUnU+TOjVvxp+0hAPMMJc7wuuL+fG1/lq3wREabx4WELQSA==","signatures":[{"sig":"MEUCIHt1uQiUadZFDlnRSPVI79foWiDKjC42H0y4FlPlfWLdAiEA5X1BcXzHlXzUB1EbWYVBfCaW0pw1TL2aZXQ0/UAMuTk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5254122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzE6RCRA9TVsSAnZWagAA8d4P/3HIH8msZ5jbKv6rkXCg\n7mzBOKXpFDiKJznc5Og4sYeS8QLlXjDthqjc7r9tAhi8BZX9NIAdzo4N02rp\nK7qmO8eo0kydzgGxVXutKBsCWHMxZVxEomX89zkljZVa39r89pT8aXRuoKiX\nDKav67x4Oy+SoW3a525bi3rYOhM8foSERWzVU90aCdHviTFq0J5G6+0Burb7\n9lSGNzd2J1e0aZgA7ALgXM76t635QmWVZzxyS+lU2hPnaeNpfHLjEB2OcGgK\nDFByMeE4Tk7JJ0/6Gjcm35rdpu4S6lIix/49O2c2IBvTxNOM9enpufnaag2t\n1jy4QBkHLnTujLu0NKbEWfNyZjnjXzIGSYCd2TCrk92QdvoIZd4avSpTFwCQ\nzHlzOWkMbD5/RUaZkdTESAi/w1z8cq4H2Btz5BdOLk7H8Kb1BHVVXFkyRzZY\nGzJDjgNi+J4TuRxOd6Qo536EOaJroD1z7PGkx9U64h0Xl1koIxh6MQGSZJHw\n3pPXCsXO1GewqqwIBLLUTWIAD7ImVOf6JSTlyOQ9qQ1/jT/S7bfmTjYrVcaI\npvRpnit/7UDfspS31XapGmT8R2PBmJPAp3KyqrU1CpjvOpz4nUVuuCUu5diC\nRrvi5+uYOeBlQERYXg5oWAB4Nkn4F+deYs2FF0P8W0KWMLIGBKBD69b0w8PQ\nZxTT\r\n=d7Xi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"33f0feb05de7ec46f87c77aa95f15600ad50a2f1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.9.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.20.0-next.0_1624002192940_0.35783008131376404","host":"s3://npm-registry-packages"}},"0.16.0-telemetry-test.296":{"name":"gatsby-recipes","version":"0.16.0-telemetry-test.296","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.16.0-telemetry-test.296","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4fb3ba46856c1b9eb4d24a3b6e3d29c2f431e62b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.16.0-telemetry-test.296.tgz","fileCount":152,"integrity":"sha512-SzK59EYnbncYrg3czE7SVb5R4WhizIihZaX5wjUi6d8ygUipVfdU9TJ9I9rXk1C8U6QMuHbKpApS2QoENyc6Tg==","signatures":[{"sig":"MEYCIQC0iXUQ/L6b46PyWYGPcmK1XQlplWU7ES5BLEKzZidIVgIhAMDLMckKTsfhhZMXQyB9772lgiybdrQUaJiOeguS+CqG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5565104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0ZMcCRA9TVsSAnZWagAAEI0QAIYosNjgdyIRqJJS4Rl8\nC9KlaH5z+hMtiYNqnaX6c97KqklAubzaXM41oV0kxYsYIvahHFxi4FeUHe2/\neUkIv/sDA5vaPelFUGgNDHxK2/cilFui8Om7h2V7+AtRHrtkk5QGKAwojeFw\n9x2xqi85k3ot4jLCIpaIi8KYoD7H6Q0tmrCltvUd+X6HYWI5aBGgSoEEDn6H\n7U6IafWhrkoP9qxivTBb8d4KDmlVrs/Zk6IlHZC3SKpJLOh+m565kv0iASZ1\nkmFXlcsw/5ER8xKxT1kvfYnYvH5jYsbSGduR3HGdbO/YpixA5ip567e1OXy4\n9Qxfdjtminu4uie4wsNKb5Ts0AG0Eek5ehTdoUpJLwtBhdT0JF161f2+p2G6\nHwc7+p/SIOrCvRQQy78XaItzvt9HgjBv+cIzhbM3G0wg1VcWXRxNm3vYgOVL\nKbDyvcUdTfOnRmGZur4EY6D5lJw0Iwu04Rlfk7TvVwISZPFBzaqAnfG1HtU0\nY/rBW1ClF2gZvjGyPWyGIrCQjy2RX4KNXg6qnobJzlCwo5X181cey/7CzJHl\n0knjnhH6vbEjLUY0r7bS2z6e6Yc8yFpL+NXgWhcTZ8zX3xF6F6MUWDDSpOgs\nFmChZqpWtLY5wOccsNCJFnVOqUj9gLkUlJb2Ro4QoPqEAgZcLlwKx+Fi3pth\nQJQj\r\n=Gm9T\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"aef6093808f2aae8ee219ef120d8ce925a605f89","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"jamo","email":"jamo@isotalo.fi"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v15.14.0+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"15.14.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"2.5.0-telemetry-test.296+aef6093808","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"2.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.16.0-telemetry-test.296_1624347419885_0.44129490970824437","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"gatsby-recipes","version":"0.19.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.19.0","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4596680a051bf5cfc75e0ee5ac107d3344bb6cd2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.19.0.tgz","fileCount":152,"integrity":"sha512-yboFABHUNB9+1x/RA13yKU/P0/2K+SaenudC+THshxL4uiUHlbU029iXp6Di2zMfIhak8aZ7FyUrpCieey/0Rw==","signatures":[{"sig":"MEYCIQDaEZoAM5RKBvPsvxa36EzYWOy+XBqh/C6UMeinTiP17gIhAM3o10hyl8QTZXHctzQqu2jthyr6iyNqAS/CruGLNC7w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5254087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0lASCRA9TVsSAnZWagAA92UQAIDJ9bM/rHstxFj3H0US\nRGnB3po8Wa7dB3cpWlS0H2dQ0y0Ob4BkNUcRTPRJZIeibcm374AFBSXjgN3C\neuJPGtlVN3WsugWcrd3Y9kjnldcOk2JdeFzLvP20uJjjrGtzUqZeBq3ya7Em\ndf1Im1S2BNSfv5pcZ8eirI12fniGVN8KODuTtrjeXbdRksxh2o0hhckucUw7\nJDhVTmpvEmeEdjviYTcPQ8EfrnpKW5C2yqBr8uYdnj3hRGnfRBlq66FTgPq7\n5N6l1Dz16RIDyeR50g2Jw1u+mFzXiMIy7qfZM76ncWDBUvSa/m7M3oOUj9en\na++q7RrGjs6ArPdoYxjBfudbEv/ntATuyppV1o3lqZrNz4hptWnUa5TcXrWU\nNhSLMPgIfFS0FG8jznoIxRCfy7ZV02BQjS0PntDlOjt5XSp/CvoF0Po9Ik4S\nJ2rZLAAKQ5y8ydTgzlVoKYc8G6wggw5XYKMg+hSkakGUrgZ1q9Hq4Dnc8wRM\nfqTdxPsGR0e4HLH751EAiNgGinjEYHB07u8FBMtQioybZyOgpzjcWv4DwMLi\nq9Tnaibv6RxSmdyxWvB4OwmzL6F0ZCdtHaIW6bPjG9fc1OqPdxpfGCEtftpj\nOWpLoUNGKX4OOzDswDgYBp8yK8j9XVD1cUXIkMtlnskO0bubS+XgbJgOxvPB\nwGUC\r\n=bIt6\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"715739c81824862bcf724ea581a9408fa357a27c","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.4.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.8.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.8.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.19.0_1624395793502_0.7360659876218545","host":"s3://npm-registry-packages"}},"0.20.0-next.1":{"name":"gatsby-recipes","version":"0.20.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.20.0-next.1","maintainers":[{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"sslotsky","email":"saxosamo@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1d8ce70c4af636a65a059742f10d9d3349ba0bc2","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.20.0-next.1.tgz","fileCount":152,"integrity":"sha512-B3u+bUy8xBJqEaRDZ5/EG4bwlEgbOIDJUg8nEsldslVR/CCShcaOELC21Ysinw/++yYz2y0SAXTrbmbhel3i6w==","signatures":[{"sig":"MEUCIQD6CJHpDUO2wxE3rOQ6rEEw0j/RtMbT+o0GCuvCnYIokgIgHRsHEKQZRVttiQQOOusbUkHGjvX5qUyAypEdSUa/V98=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5254314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2YxwCRA9TVsSAnZWagAAaQAQAIo3ABGlyCYEMjeyjM+E\nf1NiHs4rSqF/j/2sI/vQJo/NVlEDSMbjoyhXbYX5UdVzc1BKUj8KeYy2Vptf\nTkshhADNwV+83ihCYFioZimwPBoMpplkCoP8/D+IGrp1g9+NJNgWusHiRMGm\nGRJeCncjFHvnFyzIbuAtB13D/sSJV11OtobJBmVRfiM2YYz0bNlVVByB+AgG\nnEv5Vt/9yeJaHDZKBwvjECsYTeoA/xihYzyzGYEUuUuf5UXgwpjIz9yKbtjV\n/1INQUWyjE1BCpKG+4uuK/3r/UAJw3r+tedRYGFEiI5RgRJlgqLOIBHJn565\n+UZzr8qj+AWR2lZO8Ezsca6u0SRzIaMea9e+X4kEg5JrHs0B7HintxqRyw87\nmBb89c3aKXyUq41wOKHi4kVY0Tz21qBDzP1EHvtqUHHhCEBqwW++pe98atYQ\nWUHCn0EnUWztQ092l8Xh9E2NVMDIHOsI1KvCOUXJzeZiYx1DipGJG+XgEyAn\nCUofdcJmrDzK5BTtds7bCEH3+DfWLKcf1x9ohrwl8QYHB7Wy87evOS12xjhk\nfyjMbdySdTr08iTmFPGJ0+/Dloxd1kHeWhZN8KMabYttDaLuJkTRzCYe/GaI\nmczRCb1Syd2uaQZtafi8tRWbsaWvIecq1vvTETjV3ZAGoE/1JH4p26fVnGgx\n74ry\r\n=KpwX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"74a1a9b51975bb83a035e694ad6abdbcdcb79a37","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.9.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.9.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.20.0-next.1_1624870000404_0.9055170169167659","host":"s3://npm-registry-packages"}},"0.17.0-alpha-ssr.263":{"name":"gatsby-recipes","version":"0.17.0-alpha-ssr.263","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.17.0-alpha-ssr.263","maintainers":[{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9b8840d5f1e9b5c820c5217d34b5c7d239409a74","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.17.0-alpha-ssr.263.tgz","fileCount":152,"integrity":"sha512-T04UQPHLawK6vxy7eSOsir+VZsB/OGr3UMz4t41MZk9FphTkJEPO8nt/8neDLoUczE5eH79Hvgpmj7InFvDfOw==","signatures":[{"sig":"MEUCIQCa3qM1cX+VhATZdpd7FPbQq64cJCub4VKTU03kyJbxPgIgJMfemQO9RGKTq1a9bJQY5iP8aMr6QxX6LIoAN74Du2I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5565269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3f3lCRA9TVsSAnZWagAAG7IQAJWJ2/k5mJDVCEJdUjKa\nCRkCZLDfGcgW4WqJm7br8vYdVzzGzqpXjuQX6AEKqyDQ0Bx70WagNBpGhwIz\nUFBCZQWdmgDsA50LRVFHS4WxtY073zzLJMyWfbdzS99D8r6Jpyp+X73i2ETl\nRLG9tOYLNfiy7XuAePMX2ZwvvibOcvyJPIrIi+8BeL+2tQ72Tdfx1ApWHrwV\nN76SYBNcy6LiJrkxP/o7kQ0HoaAN1UYJ8gVCOv2dW5uljFPH+doOl+HKW7Ft\nEVAJclaTIfKlGxF9CvUrXg9nbBWdgTQ+rhsjToKyFYtU8BvJX6R1kYg3ALGv\nDeNbUobro/hzY7F8QdI4k1syFVneoFPrBRzCHo0RBm9n//ZAPBOEMt+fv7ev\nuZLFfMV1gZYRDVAzsI109rspoyQfuinsnHc5j347ROe37Kl4hKD7t2EiED4L\nMFfKS139xZX/HMWMT6fAIm49ggSiqi2ujJGPoviMZMSUYZRdaS2nci/nLYqm\nAr2dv5ewVYHQJ7PYa97jRAEfAefVDCWogI33+lA2c12KzU/fytXWmaRKz4mF\nH9mA+aYJSPaO4iQnNShuMXvmAUmTNWEWkbEmqC32uF2geb7wRP/HR50dXk8+\ntP1WFG7YE4lUJbGXgV/mDaMG8/1NAOtkK9j6G5egysIXJkTag4LrVoiW3Dr8\nFHR+\r\n=m3iY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5625a2cc2f47c97ddc1a21e15f1ad2de9cf91305","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.21.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"2.9.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"2.9.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.17.0-alpha-ssr.263_1625161188843_0.04887658079854207","host":"s3://npm-registry-packages"}},"0.21.0-next.0":{"name":"gatsby-recipes","version":"0.21.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.21.0-next.0","maintainers":[{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7bdf7d16bf03abf756523aff2d99b68467f3528b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.21.0-next.0.tgz","fileCount":152,"integrity":"sha512-iTG4VbW622vv5Rs94Aj13RISeDXVaaq2i2pQjwnUbLAOvlHzXTFlpi9f71DTBiXjoVNmrb7Jz+upAHCxWVqz5A==","signatures":[{"sig":"MEQCIBnChIhLDO3f5iMpFMj/j8QzcJwVf5pwC2LYw+QvIEY+AiARjUVJDsBwrRCM0+fvPEf2ZkodtkV7qpO6HE655YNTOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5254509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3h59CRA9TVsSAnZWagAA40MQAI5VatcieI8wttMpxiCs\nDiBGAhI5G3jff/V9cPKrMgIEPJoBgiMt46LvJTv1qVy1QTQ5xVqF9ynMrxmq\nOqQdasPozz+AhO31O45HN6v0uwCPZiFI9VbST078353VJYfYUv7vyjtYs/V7\n1Pv2W7eR1fUAiclaTaOsMqPnHHKfq5HoWqey1IKYUK9fTdh8FGhwVwai08Sl\nICVb0Ivb8NBqyVAW2wTj+ZLAZcelglk41LKRnHwYeuUNdMSPGBm7B0poz2jK\ns0GETTy7W9W6ZTEa9SXARWQBsE4rIFCq3vk0E6YFK0H56tn7c4uyep6uSPF3\nbuKm5ZUHQCc8PDIamZ6i8zNhEMUdh5cddjH/oENBVYCU7EWP91DW6U/sb+Qd\nuEiE7fbAPdWaAkVhiqLSqDEOc3DuM//uPclktXdgL1tr3D6XSsGFEf8p03fY\niFIoCMkW0y4MKeS2ujKu67USA/2WWAeqVPf2mXP97VVCUZ/gdGIhF/jBt9Q4\nubwrm57r6+Pu4bSN9nDG05N8/QOp0FU97sTI2DP80BW/wg6I7FtoeWw45CPN\nTXURvVS/fsfALiE0H/o33y0sBJSAbbOQ0fGMBJ8VqrVTKX6o3qM5x4KLvi30\nvQbLURo0DjfHr6XQv+bLGbrQ2BpuRfLvZqcWOVWR9IGUKcXXGzxhUtxjMecC\neq12\r\n=Zoac\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"db030ef900abd051151bbcd6c9ee4c9e41f58fd3","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.20.0+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.20.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.10.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.10.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.21.0-next.0_1625169532830_0.4386164586476773","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"gatsby-recipes","version":"0.20.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.20.0","maintainers":[{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6a4d87c140281ce3dced2e762da187ed988f8e82","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.20.0.tgz","fileCount":152,"integrity":"sha512-GsQOovAFImV3MtZVTTjv6utMRRo5QDC1+7l3Je3kqHz425J7UcmjMH/ZzHdzIZ1hO2/RUgGoFXAbWgqhipJp2g==","signatures":[{"sig":"MEUCIFQI88HpEQE/rgdfllyKuGlh/ImD4JRLvCkalM2yx8adAiEArYdb5XVilakxEjpHJ0vexR6ZhiTsk+LCqjj2A2qNQ6Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5254472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5KijCRA9TVsSAnZWagAAq+UP/ifr/wrZU6srI/xfTyH4\n4tZlptvzHlQvMporbnCuXsy0Lw752x2QngCVuzEZg4j0ZCStoAI1UDIN+1oe\nNpObDRLtmn+zn8/GEB0v6GR3ixsf1UuExBJE8VID+wV30s9oZ2dTTpqmUDIw\nFJhNLKlYinolRdwxDb/WTQH5xAEPmJxfMOgpcEzsdraWcJ/+cdEF2eTMNVGV\no5/kmsH77D9f6vftWl1BJWo7WG6Z3l9tQOMHdQBq2lrM6/inpGsAxJMSur8A\nTDMrpbwa9Y37NIMDF9Ya49K8MEeE1AWJWpYDBQe6+/ZYhyRlTP0atNh2FR9w\nGDGKwiHXA5jzDHyszt7lNQL+OqyQTsB5rr6Lf7tSnMpdpWlezXZYQqbxScME\ns57poP4N0ecdEgXaRzng0FXQpusyMYwcqp9nsXtlZR9ACQyvnEjmKWy/070/\npX09OxpYIkHJdIxphVRc8Qqi8RDPWKO6UiQQpLNYe4xx0S07PYof72EZKuOV\n1nhhTXCW4PPSrtX63i+7SWrJsjhj29+7xZeUpAhm2FYDIsmjt+5K7B4fSUJ0\nDPdPyaOgqtVnKiIDXXipy0tc1TSxW7m1WtgjFuI2V9MkgF4QTO57+Cr4xR48\nEvA8gYrZb/tkmfF1lMhGOJ7+GOdYZKfS9zXf8ATT/mG8PKwPNMeXYgx0JxL9\nTNpM\r\n=Dvwr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"808f32ff1506297af5daeef1dd9907f3e1ec47a1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.0","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^4.0.2","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.0.5","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.0","detect-port":"^1.3.0","@babel/types":"^7.14.0","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.0","gatsby-telemetry":"^2.9.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.0","gatsby-core-utils":"^2.9.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.0","@babel/plugin-proposal-optional-chaining":"^7.14.0"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.0","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.20.0_1625598114355_0.0653987671336278","host":"s3://npm-registry-packages"}},"0.21.0-next.1":{"name":"gatsby-recipes","version":"0.21.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.21.0-next.1","maintainers":[{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"56ea22fb227b5589189e4c265a670ebb0e320418","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.21.0-next.1.tgz","fileCount":152,"integrity":"sha512-/O2omqMnKMEqO5cN9TNK36lmzNupyDHXYCY3o6X6lUxZYQUJQZLTf7UtsdTKKpe9QmArPFKyt7WqDpD4KcB9ng==","signatures":[{"sig":"MEQCIGRPSjbeEmF5nh3tt2dmY751XZIsHZOglKzgYGeKR3KvAiBgCP0+S53c/MPovmCzppjpqc5kGVP8b/7VSO3COTcFrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5wzGCRA9TVsSAnZWagAAGRMP/R3KRBHgFO4+xqtAUCEp\neuivWaKgrqfo2k14uEsECDy9roWoECO7ixiMNIbjocN0zzm3MImRZEItYLXY\nGVvKjPTjVswUVCvuc0YLRubaY2YP8UrqIT0EFrvfL5N2vvB6dDPVzRAkjqvh\nsR5HUPsbk2yKo7nauTlYib/nIL8DgDsyJNmy560tcSq7aZi5VUj1eqn0/BMV\nWOVr0yi/Qa5pJ4PdU3uohlRKRnsNk5wh2SFK1f8JH7MBMqQcgG1cdEwE21Ue\nRrUmdBHo3jGixHyEbkmFSpGNJs+PU/gGY4kxKsvLj3ieoFdgzC2joGZm7BZ7\nVmWQV3pqaNl52IcKlMVFHpEOueQVrkfrUlyCHFIKCbuY9VFZWf0rbY9B/ol3\nc3mHUZsQGFz3Yx+vTPit/TB5jGxXAsTjhyvv+3r9M8sjZ96Cy2+nkt9Aqfga\nvMvztSjEId6kkuGVmGCvzLYbXj8LZuwXZ9dR9td5FIeKy5J1QEhmEOclTTQi\nY1gpzWQg409+9reLSgxPQPU35Z/759SbsT5fNjec5GEGa+beCftTIBTQX3E8\nJmU7N/nrNlQdFXdHHVxJH9mtDNXyt0XQ2bqz2jnQH7C4JujmtTJfXa8iwtrD\nvPSawehkrX1OPKqnGZNbSLNRApARMbnTShJ9XF8MftdPwpZjnbI5E1YwZtB0\nPcxS\r\n=ol7C\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"ec0444847b2d11ed29feb656c9c7f32ab78e2dc8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"^2.10.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"^2.10.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.21.0-next.1_1625754822472_0.36539011697856183","host":"s3://npm-registry-packages"}},"0.22.0-next.0":{"name":"gatsby-recipes","version":"0.22.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-next.0","maintainers":[{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"da8df5b562a858052d592b4f32e2c86b9178cafb","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-next.0.tgz","fileCount":152,"integrity":"sha512-fhQYbmJjET7550KEAjLTx+iImFAbKYdY4R4lRQnZtAfxhJrGlXE9xMP4WSQX0Bp9Zl7PY9/FnYyXEj9Hwu4w+Q==","signatures":[{"sig":"MEUCIGR3THv65u6dcXumQoN/dX1WVQatmlBH1CALv2DsuNHLAiEA6Up0NzJJYDIklfEdQvMGNAG3NHBtwZHNRWzh2E8mOXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8FoFCRA9TVsSAnZWagAAvBsQAJZe4rdurK1JpjWFecMG\n3tD5PvvDGo1PUQ8TN2sSSX2rsAVHoZDSP2wTOzvh/ywtsYN6+ycARnIB1VZi\nGqTcjgbsz6eaZOU53s8Z2wXK4bs1TVADDJWhlrgsLkq4cIrlVZdD+b/K44LM\ncp4qyITzkUAtN2rUytVlbPoTQhggWkgeUX7Dkvjo1nEEq4T1bQSn7EuJIAqm\n05wzKCLlsRDKaoxWVce+tkEidNLaKmveyxlSFWhhBqhegjFFdjPvKNdv2xsN\nE4+bnJ2JuDMaDc8mcnMpCpz6atNEsNiObbh8jVCWqZ4YiN1tXeP9SqR+LtTq\noHTdZ8JwWa046A2XXztFdDcTgaK75tesDJ4uv7x1KgJJNzk8pkpQwfE3Ar7a\npKrEEyPGTtCunqD4auca4sPI3O87uNHjbR+E5OmWkots9Aqhn3OFgRMGL8hl\nwAyHj6MEE9jILwsZcIE0axfjsbbDZCKvql8lNqnVaWZnK4mzUiR08HkMYONn\nV7aedr7WV1KCdncRMgi5i/4MEFsH1evNEu2TRsWq4ou/k1syOBZkKVvaxb9c\nOyztNMbu1Ascg5VWChRWCMfRW6PYxMJIt+zwOQ/CqqmdnAXGLza6UqHqUENE\nzg9ph9lpn9ECDurjD4YCvM3QcGCVtMiSXwhpsGgq9NqaVtufevZCzRInhYSu\nE4K5\r\n=ZCo5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"62997b37a7bf851e67e89c7440f88458978e787e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"^2.11.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"^2.11.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-next.0_1626364421289_0.29919847121497334","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"gatsby-recipes","version":"0.21.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.21.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"865b61788e39385209bf8e3857454490b0f8d868","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.21.0.tgz","fileCount":152,"integrity":"sha512-oo9ci5G6TiXc5wVnRrTfJhX92ZsjICVa0ldX7aQ/8JR77HelfO3MFfQuIkswla+o0MGcbyxgVoLX45kgzY7aaA==","signatures":[{"sig":"MEYCIQC5kCkuFG9hFXm/YWrRHa57IVQTn1q/3D8b+YI/gf8CdgIhAMSlogvOjJYXabarVscpyhbkD/wNKyGBuzGWEvdaSfd0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9uaiCRA9TVsSAnZWagAAEY8P/jjn8ki53q16BA95wVR4\nMN+F9RxqjE0w0l4jvhYmLc4h2Fj1JPDR5CivxkGqoSr9bGae+GvRu9i3Jw9i\nZlPX6MoAbWGY8N7ejT+kh3+ErWqIBZXGgEnzAPlvfptJIFaRFYIlwL/0qdDw\njhuV+dEQz4azxSLWWdKcyr9bDocY5jqz3qC3BdhklOSEKoXphfm596ARGCiW\njhZNriMUE0h9HjOk9z31nM4wIIJev8XqoouOey4PluVCzq11875jL4ETC/dg\nGFJRr7Y2HtfRK/Vkrh1wt+9VpEgOpzscL+TnTDET2s+GTn1VnE25GmCD7JDB\nzDMJgJsY6Nk+OErgcR+iEbYNpAIU913lz709X8aQrf2COjmfS65xfBS7f68q\nzOB4bonm5bHUjsJwsl6mAGtRphtkplsAmR/hNzoLxyxCcBOF8ohtWmqMP6/V\nHNKRslMdIn+KDsRiz/vlFc3Gw9uUA5vIUtsSgN5LC7viRC2JnP3fxaAGdpkk\ncogKdgElQ64cwo+nq5X1yN/J5BWecsf21tP+BCoDfGX+7CFscIfuONGkcK58\nul9ifPiyLCUcpOoxtReLU+7jRBrPhFZEeV+h9/me/UP8X9ZZVGPKMeOnZrlm\nNugv8es8NCJvdV4YtQ+BKTj/NBdiYlS5LyC4YnQ89PjeQOnG/Js18LHS+EXh\nLRwA\r\n=GOkM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"e77af12aeb672cf074719e0bacb7cccf796ebaef","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"^2.10.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"^2.10.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.21.0_1626793634230_0.28672886296849764","host":"s3://npm-registry-packages"}},"0.21.0-alpha-remote-file.48":{"name":"gatsby-recipes","version":"0.21.0-alpha-remote-file.48","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.21.0-alpha-remote-file.48","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"03ac4ab938e8e7d9b0321bb3bfcd6e909fcae6b1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.21.0-alpha-remote-file.48.tgz","fileCount":152,"integrity":"sha512-nyLfT+R73EC/KnTT8F2yb/NnR6gF5Q79SnF+7GkkoPgom00MooMZLlO+PrZ72MR8deSwCnwnvXPnLEaZBzzTSw==","signatures":[{"sig":"MEQCIGuP86tmZL2Q9rIbWFRhbl5p8LNbvZCqhNLglbNemhz3AiAcqyMpVoxockb/SQTy+1zxz9WKjFKuPyqa6qW9x1B27w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+V3/CRA9TVsSAnZWagAAU5YP/3Uh6l827m1qiv6L6162\n/J2SRbeR9e4MK6fTbzHM4/MJ4xjwc3TifxQpp+9FJZ2dEad74Wei+br5SUGd\n/wEWfzsOU6HpuhEX3r4eZYLEeIefc0EWM29c0mzmJ1gz/XLwm5bBu8uDKlTQ\nF2SWKu5blf81s5Jlq48fMqXASMiC04yy0FdRHZMSSTtyO9X3UxtUszMM0awf\nhsCBSCtdbuK1MQshO/xyREZV8xN00bJ/KumSZ9xBv4GM6MY3D2ld8GSZWP4z\nzqNH5qOVGuNOlU/L9RMwz2/WpE94Lf1UQyhvGhMSvMfexNvjgYg+E9xZ8lR4\nqeO0R2c8aQxUteRIvyCy+xW685JlW78qUQtL6+ONsLUYnIYG2QQl67OzTpca\nofw73Y2k19pTDGZlM6Kdlvm8ysXUH4NnaVFdi8TPQKSjBBpCBI2JhiREW0/z\nc7m6r3HcCa20EMit48XfHyoDnw0eBjwbuXXolFkJNeMvwljVcM3vj3m7t6eW\nbvSRv48Nzl5d9S91gLrHYM/Xmw0b3zypxfUjdDhqDIF8mIyHd2R2Xdfne/YU\nDojb7dceNMEBe+LR2bAoNg9Z3MFAXloKLjVpyo7NRj7gQDXdjnc9PTZd68+K\nTM7yVSKfFd6no7VbtLYXIj0EUIPOpKDszZJ+/G/Er+8HNO8bgJbS3Dly2UAq\ndF4+\r\n=ZElN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"00e35eebb22d38544ef9c3e320a7cf56c576b738","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"2.10.0-alpha-remote-file.48+00e35eebb2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"2.10.0-alpha-remote-file.48+00e35eebb2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.21.0-alpha-remote-file.48_1626955263672_0.1558782776408303","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.41":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.41","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.41","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9adb1ea8253bfa1f33bd0ac2cffd49c43801cdc0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.41.tgz","fileCount":153,"integrity":"sha512-JoT97qKi0wxX2RF0cR8inp0i2Q6E3cNtDtizPuFosIWgI9Y3/sxtTwFLqxpiL275qKsWBImOtyaGqg/tou8HJA==","signatures":[{"sig":"MEYCIQCFPHyytxjvHUl+EM6Z/Y4nV7IFApZgCbSIjvlkDUzSKQIhAM23yXV1b5mgMZoVQfgA3OdDWlmaq8TzZtz6n0uJFVHg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5263955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAWc2CRA9TVsSAnZWagAAflUQAJzZiRiz111hDUthrSEL\nWOQPqUFJ/Y+X9MsKaa6EUtLsGWdL80VkSA2S3+0/Po+miA6P5Y8DPIHowI1n\n6dyT9AnjNHOrpKMC9tzVr2gz2/oTNbJcmeTTAIH+rcobdxcIQ9gIx05c8m1H\n1AF35nljo2tKp1wpQ4aMXrVG6PxzdQrEb+0sj0wz7K9sK5BscBL5PGnBeJBp\nb9caxQEAFEi3UnZ5F53xOlaF/FhUYm95DVroFKJs3yvtYarv25ZwIhDendNY\neXSZs2b9c7ckYNmXvYexN0YhotWW96t5m+2yAUQmn7m9etYFAsOj59yL7UHB\n2YtoyIC08ybE6wU+XyWHoKtagjrjNJQkhzq48TaQj4XkdCVA6Csm3MzZXJ9N\n4Ica9DxOk6xto0hjyf9Ps7IftzQiUQSyIMo09Zlnxj5HtXjz2AAU8L5cx7nD\nj5pr4xrH9uvVx3G0R8OmXd/RdmNOUvB1mGDIRTUEpLCYdrsCpe3jvpPi4ciK\nOQk+yp68SsusKKONzTQ6jEtHv086d5RsvJS8s2utsWO7XGTyqJoiY9TCJNfM\nfxWm4bWCYfWYWf87lgvPTmgCLZneVGEjvUxOdWPoJxF/Hd+8HNgHitVlB5do\n2RHOyU+0tou6Nw2xHM40t3bGlHd2p5wGZWwkZLDebOpM1G1ZkmFDKlO9AYKH\nZciU\r\n=tuS/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f1ced5fcf2883e8029ed041a88860c66abfedfb6","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"2.11.0-alpha-qe-sm.41+f1ced5fcf2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"2.11.0-alpha-qe-sm.41+f1ced5fcf2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.41_1627481910542_0.22019862112785282","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.42":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.42","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.42","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"284a21963a478d19bc5b3506dc87494f3f8e5a70","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.42.tgz","fileCount":153,"integrity":"sha512-Ei7ZAD9rvssitBYvQvObSl0vzXKWK1x4iiWAFncRz0e0ic4yhbfsYMYzuzijNZ9xUNeHq+7PWOmSBs6qsc5nNQ==","signatures":[{"sig":"MEUCIQDfxFxVo7Kbjx2i6vht0mmVnNlPr6aSvO2x0blSFel+AAIgVqb27rKr1jOvLglLoHtuc95ycZAYE5wac+g1jOomSLU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5263955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAW5yCRA9TVsSAnZWagAAIysP/RVYqI8e/ltqynOaC7z7\nLTEw8KU09YKWKRpisQH3p7ZXK9pJ7svFCPdRWwrMRpef9zXSkHd+KQn8K2z7\niV42Vi8HWPiT87U/q1HmM3xKT1NkocOeK4D0m+GcCxysZbaTsxf9AVzMTzAJ\nZWZfg8YvJWjwn7xes4sMhihYFC3HZvw/e8/tTtodlbY3LQ2AaNdH3mHokbp8\nKyT7Aw1xxMPkreJUIohWos8U8JlM3u7cX5IF4VdBfGF+2KFQ/ggbuuM0mD7g\nEYnfeQzweUL8G6XJob0JpoABK0q79/mvlZeSBs4FJibp+8Eggt/1126cfgQF\nwSzHqbfgLJ+LCEY1IwkklRCYJSWGqkNaQfkE5DsbNodXUqH3NuU/xpFAdphF\ne092l4eEwHJ82petf8v7gaGSJsLUfCqoqToioYz8eiRfgTwHfrlEfzttLcSU\n6Ht0+SWRwGNl94LOA8fsUXtzre2Jy0Hj9EKVOKzSyzqiGNfNX8/OwfdWBEQk\nKlSdZTMzmQcitefYadpakBjtd65QwQiJwI5jqTkQFnOm9B2j5HQmlKrEU98X\n3CRxgHpOd8wSvRRBugm9HJRe0/K1jPfCdDTxfkXqCd95BiUKZ/VTXJmJ/qfP\n7xQABjd09eOzvZMkcUfqMREanN7j2nnquNTAs56IiuSOOrcwYUpKpAMGKZMj\nwx2X\r\n=Jsxa\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"96295b92e6ac26bc60f3de7d2b138029e2f79172","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"2.11.0-alpha-qe-sm.42+96295b92e6","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"2.11.0-alpha-qe-sm.42+96295b92e6","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.42_1627483762200_0.9169024730689563","host":"s3://npm-registry-packages"}},"0.23.0-next.0":{"name":"gatsby-recipes","version":"0.23.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e6713577a76e20699938a910461f3149dab02832","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0-next.0.tgz","fileCount":152,"integrity":"sha512-5zWpVorkyzEHiId8R7vAzu5DTarsGAYXOPit7ucYGHafkg0oNPEfLsDr1IafkLKzEsP6SVlaEB3C4E9OZMJI6g==","signatures":[{"sig":"MEUCIQDJojt20mkt+8TDEYyAH6P1LgtR/y7fzIaUSer3MkuDzwIgZJHZL+PqokNvKXHYeLk53Yfu1LoILfUizn/HhkSAL9U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAtZ7CRA9TVsSAnZWagAAcUkP/2a62JM/OzRxvY6tZPm0\naKukqGJ6rkeFxaq6g9zM1acZoSygrY49hsdNSDD9GnBqPnprC2KTnsGjh9vE\nSsU89JvJ2pSDiJawTVew/YyF4cTpRrSwMHSthnFWM+WupN4maNIgZxXHefn+\n1/FLoFe8TgvcBaZDBb+elrgCV0fCqXql8M+9chGrQb/L4kKAK2nisPRQ/D57\ndtDwmgL07qK9ox7iAnWy1zq+pcyznowthZ0msYejg+1shKsNkYaeaRcguaB1\nhV1ZCZwR6AQYPIeSQDM2L2iJSSVMoJBRZ+uohkzNsaub/tJEj4WgLuB6wra5\nIqiox6G52KVOaFZAvvTqF1Hen0E4atOsln+rL80UgVqvGJ/uqSNUIYVKS8et\n+Uo5hBF8kSYFOJL+i1JEfRwLwhAlemW2J6+7zO89dZPIoXPfGVfukrQbDj24\nnqxoD1lD67dEZM+6flavIl1PucrPsmVC/5ktW4qVeyTymxj0B0jKuJGWKYF2\nQ4Qh3pSukDtUgO05XeG3hItgQyveI/8NfGEkzKX9rlzOtDAChXVaWEV5LJ4c\nf9Um4Xo1sbh4LJtcQF/30PjGrjOhE09XJF7cFMjeBlKC1cdHuMSvyqQIwSNx\nu4h9MuJdNH3RuvjddI9SKEIJkS9KGFgzAYw2PFtV4sV+rLTdXcWw755uv+R1\nkMcb\r\n=vxEZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"d8479b2fa64352c0cb9f1c8e870812e75178695f","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"^2.12.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"^2.12.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0-next.0_1627575931220_0.3932437067237935","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"gatsby-recipes","version":"0.22.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"075a3f19a62333888fe7f4b5228bc44c2a206c06","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0.tgz","fileCount":152,"integrity":"sha512-FQrM59qd64Pwe6UVJmuTAwyZx4IVkj0huwZ1y37IWn49Xuq0Ihhmsrb1BgP99euXZz34c+PWhsFnWvW26skgtw==","signatures":[{"sig":"MEQCIAlYaaIMqCK2BjrAk3SmlP/1tYz2pJ6hM2XClhN7mwDBAiB98x2e56v9hb4ERbHc3FD6WrD2ByaQFL0xoQLB8SiU3Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCtcDCRA9TVsSAnZWagAA9PcP/0y+3xplZ5J8X/yKPDFp\nXyQR8buKjvsWhvN8uaJuk1NEazFFSlWnxW6SQgo27ZgcyCI9wjDJD1f62XrZ\neao70dxafHomyK2RKpOD3N8VRcrKVvy7FpfKxOssalaETgipo2F6SnWBa63s\nrRQtdacqcsblDv94cJHL20f53a18YL3hD49sCPBEDdU7wPtNeuh65cQzqgby\nq5aXb6XF9rgVxosfVZFcx4peKRz3TvSvay9sxH9MdEHDkvgL7SeBzUF+LdLg\nsL4h9B5FnGIoKDK0RPLDy5WlEChpgkUHngyB4kEgXJ9b2jWNsZxoSREOrvqO\nqlSzmjwIo3y5NQ2DAfNTPTunVKKbtBhdsDuSsMR7GCx789BMqRVSP6QpPavP\noVIgpYb52MmGumuZigpAj7TIsQ8MDb4vHiGTYxZ2iPy4tCpo0xscHy4uvnOV\nkuypM3eQQEnW5uJQpHjhxw+fXE6ICTLeFISQgGzBdlDhOV0ArU1IyfE1dhJ7\nohcLh4zylVSJmYKR4ZORhKaU7ayKSfWvF0v2bUc7D4QD6H5Act+1WNGhfDqU\nsSP0wPSnuuV4zrao1RRUbUGz2m7uPBr3kmb7VOnKGENdi1OPsisCUFU+jN7/\ncB+BM18QckYwDMrSKZpIXTdsxi1fJWaX+Pax+IIhFgnw1hMuLrkEFmMLD3rI\nO+6c\r\n=3v5X\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"115e63196bb09f09446e7b57123e1178d81a7f40","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.4","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"^2.11.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"^2.11.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0_1628100354973_0.970328098461313","host":"s3://npm-registry-packages"}},"0.23.0-next.1":{"name":"gatsby-recipes","version":"0.23.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"56b4bec28b9e6ad00c1228686f84b1954c4b0099","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0-next.1.tgz","fileCount":152,"integrity":"sha512-NrHip9vIsuEWGAXB+jM/6iJ88Sl69SLG+tSBnWsUDOeaCuLcVHczwmnFJlw4KtYn0MEhzNjYJxytsdny/ajK1A==","signatures":[{"sig":"MEYCIQDFXnJnt9A/LriT4iXFT7nLfh8bF21ZaNfcidl2XPOBBAIhAN3HuXtVYwKEBzL//e00uVCWZ8hCdOPuiIuDV5ebi0OI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhC9FRCRA9TVsSAnZWagAApLAP/1OTybcC7DZtoNWf9kYx\nbKWd/6E7E613rc1+rwEAfK5Us1YrVIoIG65R4ot+juPeXXx8E+Iw7kiJmkVr\nBIZprvRyTRWIMfDbwl3y/Y4RZ1+BOxh1nNYeFOe1disgCtY+c+WE74cSIWrq\nJB/HA0oFtAYvt8Q+2rdWOKinR4iKGdLEN+SvpzzeGEpww5mEKZUl9yb51pjb\nweAKg5kyVfsPCQe9y7NJdnFoE8buXpVJhm0j47jJb7dPOjmclbnXhSG+6lhV\nk6vvngFbfQL0BQIIKBZ0d7nODdop70DktJtL/lMJfHd7ddXjAjpu3Gw0R8IV\n3aOKIQC+4/rYTf+3OE6eodN9DYnEAYnqLC7T413PhgpS44GPwMWGTJbudc7B\ni+a/PfsmqxsYaJ69rcvswKqe0YBysPCP8iSy5F8BKo0P07/7jHBRMZkARgCi\niIaQQzg7Rtt5ZjaMIACjoLfSiMzBZoPqjRuBcgKMZ+SZV1p/BATe8QF+awrN\nUAKfC0Ou+2D+OMJ0JNipsHNv8pDpjkxPswnBw04oM14KyXCvEqXG0U7RTKIU\nsdxGGhppTYFRXkj6S++zwClvpKHuDSZ84oaMGC1pF5xnczY4E5eJPr1/o3+I\nfPspoAmc42X7/Y5HX94OskZIc1Vqw4U+wjuuFQmjCYjOswlQna54HkJcbB6h\nVlt0\r\n=axFN\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9f473965567ee2c1f8309484c665aa2a37e12836","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.12.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.12.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0-next.1_1628164433444_0.8702692312519438","host":"s3://npm-registry-packages"}},"0.23.0-next.2":{"name":"gatsby-recipes","version":"0.23.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0ba142e571de15bff546a4b5d96a821f32b46378","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0-next.2.tgz","fileCount":152,"integrity":"sha512-JbZGAz/S7cwkh9IJe0QV6sjB1DOxE0a1kKf8En09sjNOYNyE4Yj2EIgnsV9XZ8JgUxIeoNRTzG9aUi9vEMq2Tw==","signatures":[{"sig":"MEUCIE81f6yesD2r/IgFO7ni8dNsX7431kj05qHGtOSQHslaAiEAw9JREpvZLoXolyEjda+uN0nPyTZrf9VORaEvgShN48U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDCo5CRA9TVsSAnZWagAArf4P/jgSCnOuyltYU6bEYRYe\nV9XZ49EcIBeoKXe0YRJLjBbG5yBFZZkcCh8h+gJfo77taZz3MuXbrU8NCgDX\nfX9WFEL32ifclYkRop1bVWhnTS1XcEL7gBENQ35YUi51FPJCbAs7Zofh21Vh\nOCl6i3sSR1+rATzwA31dDWghpKkgMH/e86n6LWWB8T5JQ79YqhkfUmLQ21pB\n+5fn5zWehire65uqhCbOhp8ubtLgn1SbUHEkteu+OZQrLk1bW4/z8RtTtdiQ\nXu4Nz69MFWMgspbvDKQBme4LLpLb2gcn47ZXMAxgOkd4wjgnUSpVlqv7fh95\n04lo2CiLHKT1RFnNxjmiM3FccUVKb77em9so4j8P6a6AkWLM+njCzrXzTJ2B\nOAcnaoVAH7icRHOs//nGCmsf8jT3HlWwfJ3hKDlVRj2lzN/l0ltZ/OXPwlJs\nN75P9Uj3yaawM+gJ3fy9zrHo6o00dSAOSY0vl1tVI3PSQlUFxJ1o8HKtZWIm\nCixqr+PC4+dpms+G07oIdQT2M8Ix+lCJ4dy7RtRWHZ7CpnjeMM3cR7mJiJYt\nDM0ydRWg3SpPDh9Vz2OwPsVR6zVLOs1pVg1quo/YjB24mie+FnGjwk8ySiZP\nEjRyT0RqwUoYYiXWMMpmexwJyznFl/+6i1JZjY9oJ+6jlBhzo8riom0swSeY\nDWGd\r\n=hAgm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e0e2ecbfa3e6cc074410f4889183c7f64a8afbe8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.12.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.12.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0-next.2_1628187192676_0.0730686099371134","host":"s3://npm-registry-packages"}},"0.23.0-next.3":{"name":"gatsby-recipes","version":"0.23.0-next.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0-next.3","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f87d09e40e85b0e07d8a5e86f4f1220fe5aecc7b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0-next.3.tgz","fileCount":152,"integrity":"sha512-rd8QZUT0T9cXZkCgopy3SrkZuLzt1f488mrRoIAfJLJlEwxXNfQF3Vnhqc5L1BER86L+mfYCDNxbaDbKz8jf5g==","signatures":[{"sig":"MEUCIQDlEjsGhOOiOO4ZdAD4cx+HIO9vr7BjCvRVetlPoIs8SwIgcBOZTwz5p5BPeSROHo5zkmVUq2YUKKnRy2VcyCD7G0Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhESpZCRA9TVsSAnZWagAAV4AP+gPEXT3hfm5AS0xokyOk\nEDBlt48tRfy0VCO6Hz+zBQl7YJjXdOkW/eo8VvUyi3I1DCFhyQJtTkXZVhdJ\nuGQXCDUwb4alBLH/pG7usTTkDeIonNxmKeVY6wqdB2TRicAQ37yDjTqOGqEe\n/PI4VO92/MGDPAJ4S2+4xxielsLn86HnxC/Z0GZSzlGr7GjPmh3c3u+Kszb/\nFmYWgodJk9H31vYmrzegDyqyIgjdWyYbkiJ0qU1DgmroY9cjLzMnfYOCVwMx\n6emz3XmS4IHR9ilLMs8CxX9IQLszqUOEqWp7LGq3cE/cDl4UB2VpWtjPYP7x\nCjDvYrxdQ1hQFpoTv6KsgG/PjHp490NHmmBHUunOQjJx3iwLCba1EEIspRwh\nYtpgbk845LAHJcBQ5hAegKCvJuT27zwEB5FG9eW/UqozLsb2W+pU3jiw9bR+\nPQgjMgt9t6YrODl3chVDxEeSSLwMRY10JC66rITYA69L1jGmiJ0f9RlrT22o\nGU6TcRhOfuT5ibmi476T1yqFk3iA5Ze5n9SrI40dTIuXowQe8oDCgNWStRYf\nQbVQEPj7/Q5voo6bj+0FvZAe4UPWLg+gTVTXY3WFjOa0soqf2fNViQQ28D1R\nky5um9VfU19qmfl/NPly8QYxeuJzdC3X9de76atriWTnEsQJgg/2fRiauDz5\n0EkG\r\n=spgm\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2273a0551bd39e3c3cac129e70a8b9c83962bde8","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.12.0-next.3","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.12.0-next.3","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0-next.3_1628514905007_0.8731626612380157","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.64":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.64","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.64","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1b9d1487be44f3cbe1148e7108d9ac0e8bfc46b0","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.64.tgz","fileCount":153,"integrity":"sha512-NSQIUZmD4yNDxkUGl3M++qiKSmfK3TduzVZvd/64AWk0uXmqhyAnKSpd8reZmWWQuaNtpsztbYa+MjvKLcULEA==","signatures":[{"sig":"MEUCIDBBnGCPldiePPpLHB+0vOlb3xTKkedZEIwb26TfwCGoAiEAim1qVrYmGsQIZl6jjCZguVvu6D8gMZUfVYDrmRXCoHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5263955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEWU4CRA9TVsSAnZWagAAa8UQAJPfXgKtnFlWQNYXPLqp\nFlTUXgTM6NybzaaH2np7428rolkB03Vt/bHk4NjUbSuqoowio5VIIFsCHW4k\nzQ6+VTcu6+mIr/hsnusdsljuTAC8ItB+o9bb/6XJd9qgVlmdX0FrWuXX8f8D\n+uNBtFdx1p9E7q68jHSRWXEUJdWC+wDvPfCl7HGUHH8yyOraQvA3WDa4/Hvv\n9Q8T9qxIbYDDb1R1yczu1Jt+SrcBXFyp+zdApxWQLZNYaCE8v0c27x8Ll+YI\n4YAt0jhYUkMsUV20W03uusyA0LrkPIjkTwdFUok5L/4ZR8ArvuExXF9/3lJ0\njOeiWeqKPxmvOUDIKPpr7JZvYuHSwJquFPXrawgCjUPRxtStWJGtIQYHXvg7\n5JFXflU61XvsbBCP9V6duOUOmfaslPvgFRF+u96floynRQih1krt4iVhXiPu\nf3M4iy9oZKLQRv4JHfJtSjgecPX0gX/0+BuU2gvdViVZJ9Pl9uc9iWjXWtGr\nYjN6IeXywr0vZ7oydyaFBs+tK3T3aXC+fdY+E0OFWgdgQJ+CLvofoQNbp6kC\nzW4u5DF3y0ezUiE6styyFf+t/mz4U2KsxYVwqoBikJTz2cjW98YpTqkFesKD\n59RsTcn5lusRhrpAIgEblihBYVlLLUsphdsnStqWc977eG0D3ob7r/Ua7QdW\nspIt\r\n=QPvS\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"15ae291e35deda4ae698da323b02225e080e6e60","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.6","detect-port":"^1.3.0","@babel/types":"^7.14.5","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.5","gatsby-telemetry":"2.11.0-alpha-qe-sm.64+15ae291e35","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.7","gatsby-core-utils":"2.11.0-alpha-qe-sm.64+15ae291e35","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.5","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.5","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.64_1628529976411_0.926186779472211","host":"s3://npm-registry-packages"}},"0.24.0-next.0":{"name":"gatsby-recipes","version":"0.24.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.24.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e5b725d6c235b82be0870c6dc59f027515e06c30","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0-next.0.tgz","fileCount":152,"integrity":"sha512-URhpTBCetU+tlm8yNFWpCl+YTfqJKPXeUUvW77JZyNpCMYajhwEoeIs8Zwn1zL4XPKePoTcUOrXEc4++tbLuxQ==","signatures":[{"sig":"MEQCIDD8YCA5mQRUbdObmt1MkSpozt6/J3qgfpsdi1aItZVuAiBFlgv03fS3dcApfwOmrMCQ2d/2vfvb28SSoSOGcU6oFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFWDzCRA9TVsSAnZWagAA6ygQAI8YJds5F7l+K3uOTN8W\nIfjAIA/ZGdlsyx/DxOT2q5Z6udd8+KebE1cEY7yAv8BTHTYDSsMlAgq1IyKr\nUgHCr/L0Ebvc/VA/YcZagrECpd9qq76crf5PfQ0vS54he/H2HimEvQGpZsVA\n9Dnd5YAf0x8eNt4At9liHvahxfqoRsBobnRshkPSbS2mMxAED3yfaKSMMLH0\n0M9Zw4sA+HSfiMcwKtcU+AqmAJrBVf/npvaEsfFMPp26JH3SDNlHzLBuYTay\nHy/3RWte53VcOPyNd5xw10pzAXzvI/yVPjxaWzkoNCtupqvY+GfL9i9Eqcnq\nMLciVBjsi2qwlls/8QkQaD7+PX5iBGYptXQ1v8IhzkjYQSiAvvyKIoyIrOjv\nzJXv3KaFSXt4LMBMiGPOf0dVkBWcoRARYbCwQAQ60j08HBVRrJXtx+BcDv+M\n+VDRvKYdlZUWeSVOZazeoTx2yMoPPm9Gk93Gf/iCTb5GtQPJOGUc7iS9tkHj\nX1ah2/QBANZHUIFK6IBpTjN7ohggrj9gWn2I9j9ltVZNKwAoWPUgM7lcjL0i\n8xm452G/vHazzlOV2uvrl/oeWXs+BPQceIWK6/kVW7eotZgnix3Ot/xUKLMQ\nxg2bGzu9DPuGxHdulUHmzrH9PFE37ybTXmAwRo0LK2Mpx2C0vQw6dX3FxMEU\nxv4e\r\n=5SFT\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"41f0ce7ad5010b94c635ad9a08a7f4c4ba564df7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.13.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.13.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.24.0-next.0_1628791027607_0.5915222861738199","host":"s3://npm-registry-packages"}},"0.21.0-alpha-remote-fetch.59":{"name":"gatsby-recipes","version":"0.21.0-alpha-remote-fetch.59","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.21.0-alpha-remote-fetch.59","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2c0d1c55bfc2ca681ef46ed2ac6d161bbed4684a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.21.0-alpha-remote-fetch.59.tgz","fileCount":152,"integrity":"sha512-7fGcQ/rnPfe1K+t8NYfS4yeYcpm54jKabaAz6III1fR2kmigtLkNtyH+/Ue4pG3s6SjUDZKAdpfBb34wS0Uu4g==","signatures":[{"sig":"MEUCIC1dNHEg9uKLQJXiP8CjC1dGlYe141TbjB57wbajksVqAiEAlPecu2kW8h+79/0On2XWRWtDZB6OXGY6osPeYGke5LY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFWNLCRA9TVsSAnZWagAAYjkQAJD9cp0pDJCnk9e5jRMN\nSrLiiGVN8CbAm/gwlK0TFV05k2aoFVbv1+d0jGM09BO5mNY0Cytp58ZCbTae\nuzqHGOvWTDDHmPuWDBKv8AXnLkw6ffdvSqhXEoCCVYYR8dhCskAoo0G7DOmq\nhosR2ovBBybgPgX4X9MB3v690W0CEf/EHznNElBDxekehNTtvwxKnKBc2R9d\ncwqTROVNoxAqlRb/0X4CSTk/bsGT7kZSoa89bn5eYrlwajkCT+EoMButbNuG\nlWcfIV0QCBJdxMF4bPkmX69ywwWiRHrnHEIiXlS2OXDYtYWCyLwv78IETzo7\nDA1aAOzLKGQBtmlFyDRJIV/JHZ1ZbHAkIhDDyE5zNdiOx7l+YK/INbsyHg6l\nx/TP22aqoxRnRbr2yVX2dKYmuE+d0gRqp/qP6nAkity/O6ic0Ii+FunqQ7E0\n6MkDFokM/Kosgqv2KXdu0zm7DPQ+HQDWAtWYP6lLgX2SWk2klIYfdpErsCym\nKi6//siYEq/M586nxDL0u1pk0saegVMBi9k1xH05zae0KYHz9OXPTb6W6WrD\nT3wMLQTiDw9X1gezAzEUggIVGykf9jebF/+SymyGk4mOJyfWodLwqr1yhmXw\nBuDK6atjFaMEX3dQDTgvJp7vvhsZAMtsc6pxKPiTLRSzvgz7/Dwo01D+Xw69\nNbxe\r\n=VC9H\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e01c0f01edf639d172cab2b678ff1cd966b713bd","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.5.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.10.0-alpha-remote-fetch.59+e01c0f01ed","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.10.0-alpha-remote-fetch.59+e01c0f01ed","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.21.0-alpha-remote-fetch.59_1628791627319_0.9847908799008374","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"gatsby-recipes","version":"0.23.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"94c0cd958d47ba2bcfa0bacf8674b61438f7cc29","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0.tgz","fileCount":152,"integrity":"sha512-dR/u2mFiWhPf+0O8MuFfnl5JTbjOChYKG9+CIhubLwAjJN0cDbvleSJEQ7K32quKd56dqNf1psXqpZ+UUlx8vA==","signatures":[{"sig":"MEUCIQD9bK7S0oj7IoEIyIjgLghJ5iz3CvJSDqtriBVCtbHDqAIgFRmPbH4Olu8UAAaFDWbmsckmBvEyYLg095RJ9+c1ih0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHM1+CRA9TVsSAnZWagAAFwoP+wckOCQrCn6DfP68bWho\noPhgvwjC5eTZSNClR2Adp/BCJQyfJ04OEGcpYrlBBwgGfCewoHEEMAejdzW+\nIyf4aOsp5tHY20HDb9htQMSSurzOEm4sKDKrOPKGmMBhLjn5dT/YiXlMnmd4\n+uVRQ17Ru5d08+B/lymvovV6dTLemgw3gfueBzj0mOZq9w/MNY7ui83NHymK\nroWLOJE4j307CDoNhEqPCo3sautonHs+KOqrqeDKYYAa2HMhkbFl9aHHXKMc\nnVouo2GrResuTCZEi1hxUJSCVuIyDv+C1pcVFlqYqB6CV+Hvs5VUNVarAgBP\nufbBxS1PD6YTYb4rw3010HFX0qDRKsu+huSD3RbiZG4MIvKEvmrsn9jO8alX\n506h9sywJsEeekndY1Vt5StbeZN4pQPLDmBPQufIMxeOofM17aJyDkWTaphJ\nH7/v8kOyCXgYODIPSyPE/R8eABa6uUvYt51Ub6UQ/oWveq4MXrmnudTSgFPi\neWVSkewucSu4fw/+MufdI7b8IqmVpu+PhthO6+v41cOxHgJjDxAGkFBAucJc\nTpKdUiA0u4CrXvA6+9U8o8gw5IrczLJf9XkbjroErBi3hLCehvPNfE9qwV17\nJnE2+CVMyC3uDm0zoGE0qPu7hz3M7zcqkMEMEP8e2FNxu/SsvuchjiUOgu1c\nKShU\r\n=vr5Y\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"a87bfc3263e37ae711d626a0f6df657dafb88d0d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.12.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.12.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0_1629277565989_0.16051767213953094","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.27":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.27","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.27","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b1b89b204a8b207673ac8ffb0437499d557b76a4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.27.tgz","fileCount":152,"integrity":"sha512-GTg1WIk19d9yw868YUr2kiVlHQdl5QsHoNaGFWAzte6LLxIxyuzGEKrTvsUGV1L7MLUk64LGV2LEC0+CDX/OvQ==","signatures":[{"sig":"MEUCICK2hpQq+u0WngrVn/fOHDjYzDA3QpsvF2JfhJDPsSUBAiEA6ZXrCWIQ9fZ7hKNFzescI/lIksmjk1lP1J1n+ywiOQ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHQEfCRA9TVsSAnZWagAA9wYP/jGVXGsjxCyH5u33lx6J\nPrlXbd9AF1kPVwHslH69Oe50DUXjiJf6r8Yu3y2qqeIEm1VqUd86B52JPRwl\n2oLDo+lCxhIHbHjlalc5GwHHZ712SUXmiJn793zKzSxxLohDIzFvyqbtwzup\nyWa6TrwbdVqhdjS6DkeNg1BOHj/I1WFS1W5IpsJwbx4Sit76Sp+G5rNrtpUm\n8J+0MxQeF5ERzUj/9PRSyp3bwCM1FhQzq9jKUhb+8IFkQxK1TwJsvoope0mL\nAQeUR0108fnTA3XnYkAGSXZ1gi3EU5UVj7xhppxj5wlQd0eqNGhPuTKLAzDF\nlB4t0IDFKb5bq7d/M3CUoeDceuPxSIdwn0zvZs0vCDhSV/sM8dIOP6epEJtm\nLCkpugb6jYSB1sccOo+8/2LOWve7m+3zqIIidznleLQswwAjXWUQATNFDj8W\nBrn1sjPVQTV986Ww31JQgsEnrIDIC1KX5sSuD981h/08czUY/gD8xWPSIsf8\nBU9VPiO4Bsv+AxX1aQCDzZFYETXdXUrk/46Ttzo5EKZsqgvDrW3iTfLjeZKf\nY5LuxFcxPUGt449J+pVpp3at0HilzDi+FqbQ04KyIiZ7pV2OQGV0sQOmjW+G\n5u2mD9FrecOS4pej9QTXdMXGglV6Wi7n1WjsV26xHIG4mQR6936lboM0Vt3V\nsoIQ\r\n=UK78\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e37a439ceaf011f19ad0d3678a91d06a2b05408e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.15.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"3.0.0-alpha-9689ff.27+e37a439cea","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"3.0.0-alpha-9689ff.27+e37a439cea","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.27_1629290783011_0.7266698668193394","host":"s3://npm-registry-packages"}},"0.23.0-coreutils.29":{"name":"gatsby-recipes","version":"0.23.0-coreutils.29","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.23.0-coreutils.29","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"ccabd49200f322aa426add0ee986b2ffae29fdbe","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.23.0-coreutils.29.tgz","fileCount":152,"integrity":"sha512-Z0nN0DjgmuSRohVI33PUh/bbJnctTvElRfHI3f1m5QEwgRTvXZE8VDKTt3xWsQlNc0SKw6ai68WhlwLs4teqbg==","signatures":[{"sig":"MEUCIQCKfETGgyEqYCe1nDK+xNrZxiGGSqxB+NSByMH8PZ2IrQIgCKsEIBk3YndkffInNUBf9//gGnEwyxYVHIhwnQ5o6TQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhI6zQCRA9TVsSAnZWagAA924P/1E/ZJQlqmz0MgL7sAhP\nbQ4ZLzh46zl1/yfP9qj6Shd8MRHNmXS2QxhFLaFBi9FnLIPsA0RTaGv+Ybeq\n1hH8448fD0PDI8O7SqtVE2BxoaECrjLwKAlPDL9Mw5RjSwdRbWbQOPWzmIgA\npGtE4oYPL6xHNkRZeNqZhL8+MPZRgox1Dndrk+rchHvcIEi9b1l2i9smWOUN\nsmpOjUe1JiiEK0k6cr0xtC2lEz61JeT6Tqi4mzw/O4p3/U6GIxkWaQ/MXoX/\n07JiO3djr84VihU8MC6+3eWfMIvpx3ob24pyhB4kMuxWxHjCA+3SmK4sj2RA\nKyJLho1S0AOy6NMLKmgpPKcLvN9zKQQCGOCnLhvFhivhYiJ5bQ7FeFVTvt+k\n3ozld4D+h1UxrtKIurN7T+e3Go20+To+246gwrqGKUXSY9xod2Qj1/6eB8+C\n1XI1bmKwnYz9MG8XxpYlxAdv88QEFF1avoxtWWqqVBN70cdNdiU1OMnaC+1j\nv9s+w50bspTtAzIhS9MRX2HYNsFitZXyLoD+V3ULHPhuhqTyUQrXJrNLSGpN\nF21ANaxitR8uliPUg4Mcn9hLRc1kvPEbFQYNJiXBHkQUy3jGZruVkrcwx1q6\n4MQjtvkdUSM/J1oU5bgif0eWasgzNhtkIyRXUgo6Y6XHsu8+fLKS8GjGGNvH\nEf+4\r\n=uZWJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8fa770da4b04e9e74634d6620b976573ce157b81","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.4+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.4","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.12.0-coreutils.29+8fa770da4b","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.12.0-coreutils.29+8fa770da4b","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.23.0-coreutils.29_1629727952088_0.9268211965250888","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.83":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.83","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.83","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"93ce575f151f8376099c6db5cd3e15ffe73f2b8b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.83.tgz","fileCount":153,"integrity":"sha512-RV/7LISdZMqzvjQu/tnL6J3IvLrVmWdS8/+iCFmp6U13hyn0F3OLWMcgy1TeORRHmy66Au0ANIZ0E5xfQQMnfw==","signatures":[{"sig":"MEQCIFZD3qhyu50viO695lnhBzrpK+4pDu9ksw1HXMdV5cOjAiBLHikdVCytuU4cfY9Q87z1BUT8XidUMy6rCoAso8AowQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5264182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJQYACRA9TVsSAnZWagAAxWUQAIGazMHu0hAOsfwQ26DR\nViM+enBLYJ593IwGzRn1rjsaSCyJNRW+0ONd7ipXD4f9MYR+v9Nzq4HJsUFo\n4HqNTQzgAZ1RwAHmG2DXgSV4heVAL4w4+rCZQvFrRJqaGs8gcxqCmRuBV0EL\nif7OXpd4Q0A9/73WtEbagA5a7zjJTHoIdG3dLQiFj1aN2CJ9rKN18DN7FFCx\nA9Gc1IeKM/S9D5rGiVkdvOK3n6zKeu1lOWzsNKM7Gwvzh7KOMQ5c73XkVYwe\nIYsKTYMi2vuvrcNHf9cafb116GfAoqwIkohcyFwL87GEpTDzSUFpCpZdz1eo\nDdnr4lobXwBOhwQTffJuN2xD7VARTxGVWu/iPXvJ3iitz3osE3Wi0/UXi1du\nlEMe+AWaZ+5HZ4NljHOlQjoQrElcxezE/vn7hunhDczFKhUPkRRTdNWLDjHy\nUgKIYla7J/HsfxDQo5D7bvPP3aMFbCJG0Yai8EPqa20s0xMuRNDOMD/Lp7Xm\noa0FZGVqcrGfIODuB3CjUsXP24Flnbm1Mxd1pWFczFtFajOI/aElpCth0JdY\nsq6Sz6p9owVvOOLrmFroZYdJGmWjYUZCW0PturBKxxuXTdTIyDfGAA4idUD4\nsajG2e2JnC20GiKpMbttgo1mD//bV6gQuH59H/+krYvVk8/L8HfQVD8HQoY2\n6bKq\r\n=x2WQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5b70425007ff77f5622e714982ebd6155c1a2e7c","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.11.0-alpha-qe-sm.83+5b70425007","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.11.0-alpha-qe-sm.83+5b70425007","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.83_1629816320655_0.8704982997285968","host":"s3://npm-registry-packages"}},"0.24.0-next.1":{"name":"gatsby-recipes","version":"0.24.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.24.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a2aded4216422f7797707945f4580e8f8b6f5bb3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0-next.1.tgz","fileCount":152,"integrity":"sha512-R68OgqSb5+VDktkusbysvXFaGdSNlYI19hXjiDlCSf+YdL4DheuwUpzmXUuRAreeOjGH1cqm6t/akyX8FSGHOA==","signatures":[{"sig":"MEYCIQDjBraHXQxjiU28//ydy72dOYfEVhqBOoScAVt2B12dygIhAJsCeMTRMalOzKEzVOjx+z/4STbO+bo47rgUQGnEzN17","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5257947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJgcACRA9TVsSAnZWagAAidAP/A0XFXNDH20qZo1oBgtN\n7uPJwNsYCIqGcmh1h3uwoweVOhuegPKMZUxYMtKDzd8zccYdI3WFwsmZyfeD\nfHP2M9YYHsgO1GvNSZXopOK0zxR+C0QbopaMDxHXcNro5rubJ2I3k0zN7YWE\npZiha5mchu3jEi7unqvvN7IonJW07hcTvBbrvfPkY7K6VAXR/VXylTQaPONJ\nJSAvdcIWj+5tXIMFsVR27npD1UIVAOtIgLN2Zix5Gt8AkqWKho8KKZZfX7Ke\neaoP8SI9PajAafUydy7kAXhJbNWddZFAp6ttHMJeYz3D6vhEvsNaA3FK9OnB\nXXnIkJIg3whUGh9N3QOlMUyLtYZH34/avphREF1nRhGemhN0rDGGc+EL3zrN\nGTXvEkSfqynyLax2KuwO79TlN9KMOHw1HV4/zLaJCMgBoh5uHV4tCwVk0RiS\nu+mKh9ix7Rs1o43L0XROpxnyxUXww8D70PIC2clvNkyNbpY3sg3sAAtdSUvp\n4zPQYj6SqoPTIzQdJ7aobs2GFIXLKf0L4b0xddTFsESvS+KMY5wTU/936PCi\nfABvitFWX1wcOiyQXCxUTWbr+gf+1BaJYJdHXvfe74UVCU1CWKTJN6QtXFaD\n3PpRqu0/5p1GpmL+Wpn8tLjlcs5K39bb83EgiR31tWVXMlso4QxGAcGv65bs\nMrqZ\r\n=8zv1\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7116ab5659edda69033cc9758e53b7de5b5e098d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.13.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.13.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.24.0-next.1_1629882112072_0.6688001091307056","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.85":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.85","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.85","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2e84c2202365811881611bf810b525832f26d00e","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.85.tgz","fileCount":153,"integrity":"sha512-HpRYr5AfL+T2juEwH1gt3yWm2hZ5u8o8IWfeS/Mv0LUTJJQc5S3dBYsbad3CzqeVbs7WIDf+/iDYKNp6p2l3yw==","signatures":[{"sig":"MEQCIGPDKTYA3b8D6ClpRnvrdsM90st0Yfkq4wCZRYc2jUhcAiBBWoynlwwjZXbnjpIXYBFecUZTR3AiC/ddKw5nkh3Nxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5264182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJmtYCRA9TVsSAnZWagAAA5AP/RbPWCqcJBUqb8I2aYar\n7UhFXEfXpFV2UYthhV/S11do4FbNlS5XOPyIxP850FG6uQhAsh+KSgrhpW5U\nFwhV0MUlNpAYc+y3LvEgwFcSXPFut5XYzXYke+0F1MCBjWzh25zU8V8mbMKx\njdydocwjvIDIfUpkd8hJzj8irZ0m6Q96FZDB6PCq9lRXChfBJTo73chb/dC+\nasm8AXGGU9ec1je29ZvDCPT743fqTtCoSWa4q6/ISvwHneNK6tfzMY0lqwS8\njGU4NtVGCVpyxJlTOppVdzrO9lMNRK1aIizBJh07haMgh9fqm/uru3hWGIm0\nWNqYT4oLF2jvKD4uK/CNQJi2JVaEMBtqBHFAu/G81YM3WbJ+HkrbDXLgAuuy\nihR/XpNUQooKGoYHhmcM6lu2a+/RARpZf+yR2AFtUTGYwc8laucGy/sQtfWE\nsm57nxTQ3pZR3GIFOYlLTDBz2zlDYSvLCIlZyLwO40kK/1to3xW4zgWfkSG7\nJxJWtyoLcJwI9uJFRVbKZ1ZyxO3V3c1Q3L2Z77UzrawAhXex6d3g75mlyi8n\nD+wSdqiDW7nQ6c26/0G3PmONCp2VkesP60yiNtk+Uzo+9SXilpVkKSpiXWff\nSuhIv5Utnp9QwByRMYsRmHbY13VS/z5g5ife3eabkoMn21OMgu8Luszk2IM6\nWlRj\r\n=oa+8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"dd0e9dc519101c40835471f065b55f7a86d5e83e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.11.0-alpha-qe-sm.85+dd0e9dc519","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.11.0-alpha-qe-sm.85+dd0e9dc519","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.85_1629907800362_0.7553384120999962","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.86":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.86","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.86","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4c5a4b0426ce8e8bce4a866c0291356962f8ced1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.86.tgz","fileCount":153,"integrity":"sha512-1T9CcOxNGgmTF6KnMHrQUMLlg+O8e51dqICbs/Qq3ghkFv+phlIt3mRxojmZdtEjePlsW/Ew5syS8n/qbZFk+Q==","signatures":[{"sig":"MEQCIACzyEdppsMEm7res8eNfVEn6Ng5bWwlb3u5KwTO+xC9AiBvHzI48c4LszSp6LZcYm4mrj95PyHD1PlycJuqloLyXA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5264182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ5fsCRA9TVsSAnZWagAApZUP+QBm3EJJiOWWKuAeToe+\nAkeLBWC3VM5wav9TTKPgBZcvCGZD7eLXBvgWbOzKs1Qh7eF3asf6ZjCIpp0d\nl/78BzQhl6QeirJsLaEuk+YoKePD8BEdBfN3us4w//55qtM/bHgO9xEcz7cn\nyuDR4d3JCbLc/IpKcGAwlrzKm9FmhRIuHFk8LkvSkV5tnOS6Kt3Mg4SJzl49\neyzJdIHPutRmdENt3BR6iY7qdIEYRfz1sts8so1Frsf62Dv1lqAciT32A24M\nzUldHZ/WrlVi5UXayo6F4Y6y6iKIOIImT8rsb8PVYs2DqM0+qSesYvDSSL5U\n30WjBUVkLzmH8kxUr4KifHwYCf2sn38tK/dKw3YSXe5/sq3tRgazOrFM8UQw\nM5ungyp7m1miVE5weFnX0uunZjiquZVK4BqZOqaNuRcdmhvYHlmWAAN7ltoE\nPds9qJapxkvgREGS5y6W4JDc7IkqCXaXW0V1lg3sfMPidGeKQKDqF313a/Zj\nQX17pir2Nr9E6DIoign6lD72gJkjPeXqni5+syu5MfCW43qA+XCTN1hQUgg2\nE4hzorFo75lEy7X/KbUM4Lk2fjYOPkHSQOcZzqdJleage0nDJmeBlyQ+qSDt\n+liEr5VSFt4iMIhf24msVQUztwGFcGsQZJ4nF2hUXB15d2tAgodeHOKDT/4R\nyZ8+\r\n=X9zZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c62cdc8f15978718f3c4fe8dbdc251e0cf0e6b2c","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.11.0-alpha-qe-sm.86+c62cdc8f15","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.11.0-alpha-qe-sm.86+c62cdc8f15","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.86_1629984747939_0.7308881829322631","host":"s3://npm-registry-packages"}},"0.24.0-next.2":{"name":"gatsby-recipes","version":"0.24.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.24.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"6e5dd2e81fe757d5123f206f94a6cf848f20c0f5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0-next.2.tgz","fileCount":152,"integrity":"sha512-ivWOz01ULjj41+HftMKXqr8vEBi+0mhbRqIu6stoTsj0PHAjDc1ZUBZ1Swq9po+sxLTnmlqE9orjlRBYudPlQw==","signatures":[{"sig":"MEYCIQDXUky1TU3BcPfNdNFQqWgFO6kIlgkL4/vHfsBnf99JZwIhAOt+gSemF1G0aAQ+1UIK+ozwqp/cbnp4pw1koypwJr+A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5259794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKKcTCRA9TVsSAnZWagAA+mMP/AhAuD91NSJqZm17cVSk\nO+0BmiV1dddzLACPjzHH/h+4oxLTG5Zon5Y8Pcz1POq+sp1e+0OGQuQ01pJX\nhzOAsJcVOyx9+HlmhZH3xOfghOQTONooKqa0cfXH/rbel6JFVWJQgGeVhRFl\n0wmtttH1BDqz/WEwYyjUHYo1CIWbH/a82p1cSP6v9km5y/Cokmbu9ZtKHPRu\n2b2Ox7Wv2+v1OUGFF08MxmTAs6ntGOAcsmsD3a2cXfS2OSFv1aue93o8inx+\ntAyC76L5a5bgfLqQAW03ZeQtTy+T6o3A/nKJrWpRxvM+TJuqTroc4Dhjuauk\nLa1jEIpNQyhnhUIRZ42VfZFTpoOV1NXSvQtiW2QJ3ynj8LDkTlDqkz5SJ44O\nUTPYxPiuwnG6qmKS04t3Yu90rf/SJItU91R1813zxUmtmhsFlGXXQ0Cjo1Qb\nsN7OsLL2+0Rza7/GUEoCpOZjeNNi04Nn2uzgIDY3ye+FlRZZh3c5mphwcuPM\nzz8kVbG0XCxMbd1BSo3BH3pFSf1OOmP8b87lY2hafzhOTTlr5wGLUo7M2vYY\nKCcKpixVFyhY2NARj4GI4eW4eRoBN3dbrS7BiU5wGYhanxFylZQ4ySwy7Ti0\nYrjDnPCDja9Ptyu61c9JYsm+MFYgIq/i9BPdO3lv15wLRyt9uyfXOyjRBqxj\nxVbZ\r\n=7XUB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"944e3817befb64b3c7863fa990af983337d88d0e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.13.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.13.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.24.0-next.2_1630054163586_0.5694046867757614","host":"s3://npm-registry-packages"}},"0.25.0-next.0":{"name":"gatsby-recipes","version":"0.25.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0bfc821ba5c32bd2960477a88a62db195957e37f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-next.0.tgz","fileCount":152,"integrity":"sha512-tuywlon95/FexIXeo4Ld8+/C4mXHMT9dvhCAD2kKe6VMRhlvHwIhoU8H0+9dnE+X0xiQn3sRZPAR84Syb5845w==","signatures":[{"sig":"MEUCIQDiJccFsRUA8tgq8Xs9evzb0Ev02MtKYL8LIq6HZZtBBwIgBiVmj669PxOVhx1NpJUsWB9V0xgSnvbvd4kuJl1J5zg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5238706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKLxcCRA9TVsSAnZWagAAjH0QAIAgb9Ybt5XfeAYzGv1a\na1xgI+Qg6YSJ1ZtC7xM8pRRe0xIL1O8dqRpvNhlqVkkKp8u3H2/ha7qpa9zc\nvoJAgLAUiQaG/kwXiBOctXpkW0NLh+QG6PvUye5UsjnM0Y3CbE3WUN3hcuMb\njY9h+iW499qlDOqex8uo8atQBbI1OMBoZ4aiuvJ3hjEly9JpdYKTbPhb3sep\nU3+6DXX/Klob39DfSZvx+2TuCrItWPiJU+F7cb4ScC+oHqx5KOaMvDZnL9I+\nuex3TkMCmRPtblQgs4cQdZ3Naj9G1cbFMsatfOypFsm+QBV70bpRlYKkvU34\nNRx7rn98lUFkZfSMgCG7ipngGIjAXXUZLQKz8CPZ1knyig9UJIlNOK3us5D1\noAzE0PSiu/HHYKqyO84AyZjR3ljwVOIuqJ+HCa2i6NNAhT9S7eO9KjtrDfl8\nYKG1tUzKUy2+a9W5rw9lTcceiljnEwSy/TOhh6tFovl6hJFMxD+AsI5I9kLM\nI8NjX8TKd7lbE0xFmcCowkA+UDhu9apOFOtcc5f8tP0nuwlK7VuKcDEAunN6\n/+mleJxCFqG35omKIJ4x0oZcUH+dkoqL7KCKle5L/l24BPHibUzcHz6lij34\n8BQjKBE/eeEdUypLq/4YKijoZMJclMVUP8co3ZCkODDfpinEFVeqO6rXjlno\nCN6q\r\n=Zc5f\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"d7d08508d3eb88eff87867fc7121c617cd02ce8e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.14.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.14.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-next.0_1630059612618_0.5675696879529253","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.5":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.5","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.5","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"550bbd309f4ecc1fca96846af772ce148c423359","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.5.tgz","fileCount":152,"integrity":"sha512-YiKH5Ofl+xrQYOg+deL2s8DvFjLJLBtudFQEMDhV9SrPOp1kTIh14v46eAcr88U0gahept4Vk4SmXxJRZsuDFw==","signatures":[{"sig":"MEQCIDpykvk37XD5T//Gs5ZJ9P89ZNO8vA3dIPmxobpJ1xYXAiBstYzrcWPzLShgrSsK2lbXxy20aT1EHPvlb3mfYVtLyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5238758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLKUaCRA9TVsSAnZWagAAyEYP/3y1sPtgUl7dG5PKjpEN\nxEmlwIUUXuAfxrLzg6jQVUp9r8APPCywWdHcAdBpv1vsJXVWeAuWsQzr94+Q\nZaDYJ/f27Xj73GgWcAj3MZCyB+4QEzsRZueSPyAQVmznue7b07w0wX/hVeZa\no6lhPSObBTIavkolv8hHl5uL23FmsGtF3keZjaktKfdmKCjtxzBWlNl8kauo\nLIdGESOgHFe5sabFiSNnJ/nddAXAAiI5ycYwrIzS/T+kS15zHA2/UG/NGuzH\nmVGWM7ohdgQvVxF8kStO5bDz1mrlbRAXEpnnmsZnV2DEZyURzULxmvOmFIEQ\noEwj8wkc8/chU3xPYs7KwZv0A5/mSwoAHpfwkpE4WChlAdAgFt9pCuH8FLWz\nzbUP+r5VxJa6wIn0BwTR8V5pJZCe3vj+9BNYqfp42T75qDD9tHLxVp0arTbB\nz+S3fz8HpsWDN+xquX8cgpbF/KpzJzj/+/oOeCizpEETEi9u640hrFvTA+25\n4UhQMn+3LvJjljGHLDBD3J2oAhj8DLSnSK4TE3ja605HDQaMQEyMGR828HHA\nSgSIzJEsCq/9JKvTiGhlOtRqWRnQz/3533tcH92bn9pEAxG48pUpn629OpKD\n3ZOjz4rJFq+SbAQBgTZY1+K0UujD/fUnkcaY0HufAZdujKJuojoiNrtSgrgz\n9JLV\r\n=TzkE\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"cf4d725430bb62630a91336af090c1dd2c40984d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"3.0.0-alpha-9689ff.5+cf4d725430","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"3.0.0-alpha-9689ff.5+cf4d725430","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.5_1630315802074_0.16730441336487","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"gatsby-recipes","version":"0.24.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.24.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"72ca6154dfc61ba39fd2b70c969976ca27e3271d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.24.0.tgz","fileCount":152,"integrity":"sha512-azDY4tnOCy5/CK+Kv53CBIgzmEroAGe/mLaiW2PuizTQIdhoY3lg63ZXK6kPQHAq1F4qAYHGkBM4ECgSfaq5HA==","signatures":[{"sig":"MEUCIQD4WrOSq5heosXRRaDuHncsLYtk9WLyC4smr4hjr0KOIwIgcsJHn0+VLjlw2oRDQVhZ41w5g3xT0oby1iYP2+tfZ1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5238685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLnHgCRA9TVsSAnZWagAAk1YP/i8lmcGet/KgOqbrMe/t\nywB7gefZr3P+xMhqrhdnVQ2MQHt20dIKR3B0nX7Nn3pTU9xRsKdM3IrxYOKS\n9AJL+nD/ZCoWx90skkVxjywRHN4HUgy5kfnH/mO9Z1C32CRlQMOUHMJHlNyr\n589Qvh57MnalJwwBsaoenWBO5l6VA10kTMQzBfsUxbbnSVWPqYK45+3bxg9H\nRgE30WdMpb+MXcuWkS8eyi0Op7D5OuU5pTYkjwvLQYCUuVoajvBcGa3vONKv\ngHjvAyWIsdyPryyq/t27rVS1Ld+KixyLNsL1YG59Pid7nxf/5UQoTXDGLdRb\nYo+5LAm3nsy5MdP0oBs7J/v3yyUPEk+XV2ku4ZS68Pl23IHIysraOba+zjRK\ncJz2d8OXjjdtbsxcIHdz6aB3SnccP09obTi7x40M1m+dOpwoaO4SlOzy0AWO\nvGYAgMn+a3eKL6/dRtjwvfNFyU6PksUFPcGXNpz1nlhz5Yqr4V6iUyIIZ2Cb\nm+9zck2qtMBZrP812SL6gkY/sPiIfhtXHDEZeCG/qz9cvl0w8+2XHUtypG4W\n8+/+jSRplLV0kX8U3Ah/uRDV2/vxWhQqNyjQtBvXkpsMFG9QGt91MpJ0lJzM\n3NUZyqeIVEk9061L0GMbihRHG6IyXn+NdL3repo25kkJBiUz4HyinsgtkRph\nYWph\r\n=DOpb\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"0a455df964ce0ee46fda1c053617d5adf22a34da","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.2","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.4.2","fs-extra":"^8.1.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.13.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.13.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.24.0_1630433760651_0.27842752425873574","host":"s3://npm-registry-packages"}},"0.22.0-alpha-qe-sm.108":{"name":"gatsby-recipes","version":"0.22.0-alpha-qe-sm.108","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.22.0-alpha-qe-sm.108","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"71320c0f8fd6970dc273576d47b24bc5a68e2df1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.22.0-alpha-qe-sm.108.tgz","fileCount":153,"integrity":"sha512-V6M/sBIBlKuhpQWwNJaZXA0bBF6uU7Objpx0Rc4DRYCwzhqj3K/GT8+Da6o20Z7zMvFszB/p4QykYBSONR6HmQ==","signatures":[{"sig":"MEYCIQDjzkx4314NjDJDs3YO/i7bXuECLWry4Y+I1GRiSrCa6AIhAM+Y8Ux7XI8lmgZG00HpBqF17OtAACoW8sWeJfyZFKFj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5245562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMMQ9CRA9TVsSAnZWagAA+u4P/AwbOeeb2aLA36Pp6fEO\nz1Vq6LWuys6jlvprAlBeCgQ1zixSY5ZKR4fvw/j4Pg6uIWmEzdo2NzqEFkq6\nAjsYi/ixo5un2eU9LHBbiN4n6t0bR+/qBxbe44Qaq6ajQeZJwdd+FKGc5vqA\nXwfFp/ZiNkfFtAR4+x9XK8cZX1cj4WCJbZsJvjXPEOlgzFi2wbaMYTu45dbq\nmNMEQ6rNn0RP2Z3N9MsKeZXWZhkfev7J+90tgGhwVGu4/OP/YfIwT/S6dxx2\nXIdrNs5H8kCstkEU/SUTQeII3dYeUjApCP+wY6xcX3nbPm72iaZHioo3BnMa\neOT0LUF45lKzDl6iV1G3KrqNcmBFiiYfWIVbtEJlPgJGBRUNSrSPNo1ASK6M\nLsZzOMlTDZesczeHr2NNI7KEvDIRjSN1lWvqJauHWocCHuXPRX6ubgwTv8aI\nWRsORNQIIXnHlxmf55J1XNCJ3vAamF2NNlbMfHZ1umsEgBXP80vGgq9D0Y9v\nILQWQhmF6amIno79dfVNMt3o+aZ/a4DwM8gWuEJllt2K2h8w64k24xBKKamL\nmZNOoaMCflsNghD+TAsmqqkNGd38xlyfXeo/rXWDTKvLdMS+4X3HwsCdILDG\nZBSMd9BRwTHdInOk8HfqeeiBBF+oP4JKymF5YhYh0L6OdBpt1uK2H6lkNu/U\n6gEb\r\n=+s01\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"5fd1d58d3da17a5e9b21417454aba4227d0f5223","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.14.8","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.11.0-alpha-qe-sm.108+5fd1d58d3d","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.11.0-alpha-qe-sm.108+5fd1d58d3d","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.22.0-alpha-qe-sm.108_1630585917537_0.8270415855005706","host":"s3://npm-registry-packages"}},"0.25.0-alpha-remote-fetch.78":{"name":"gatsby-recipes","version":"0.25.0-alpha-remote-fetch.78","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-alpha-remote-fetch.78","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4e477de9ba1ee7f65eb0efc2ada4ee31d98ee3f5","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-alpha-remote-fetch.78.tgz","fileCount":152,"integrity":"sha512-247O7UAccfETUV+u4s1DJV9EbzhG9dNCJwazItLSilb+iurYb1CFjawn2oEpqPyImJEZ6+fmH3zDJuxK2EmB8A==","signatures":[{"sig":"MEUCIEKBfCWTAfE1iUoZpYFwWZ7VECfmcd6XOD2dfT18KlAIAiEAgKddQIIb3Qzo55N5JRYyS2kPnGgFD1PFcwA2VA1htmM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMPKQCRA9TVsSAnZWagAAuVQQAJHsOJ6lCGj2TGvR6ZZZ\n9c+D/DJoih9tDmiKl4BEOsdOKwRWNx8JgWOi/+T8SqJ3UhrAtHVnO2YO3ef2\nYTaYtybgFk+Pqfrkzbu+eu7lR0vTH3Z0bps5OD4K3waEIMrduRR5kDTT9R04\nIAQotqYmvrTQyX9ETfMVNdAnVG55koeBt1sR1LAeYdBkUhWWZL7MuVrC+pEC\nbIr5waztRjgOj7nnfUuww+kho5NMjfAxiQAWafzdqro4H41yjwB5uiEVu+Ba\nt1S/r9tOKa2stHbOMWLnzTkgj1ZdMRkdrHFekxn9yP9cUPygBH+uODk/it+C\nGbXOPD9Sv3z5l6NQW+0Ila4535YMjqex4BZ/N3dBM4/BWU8o6ef/PAwv9WlN\nm1L+lq6nKXYD1tWYN1APBrrVxRWSz2ze9Gm4kOTZ17jiIYC7I2MWEo8PXVlh\n+AXY7opfQW0+4z0R5/7V3eoLaG46OW2S+M7ONcT35SZGrDvjJ9q64yaM7hRK\nVsveLIgxYoUP5+1m7GYLtPq5jNbzOhttmv556SGu0bzRXhYyV84YYFeWUAQN\nUIQdX9FAE0OqHb+GSGbfrn+qWLE4gwEpQDwCZe1fX0kWZkxZObfAuMpuSnEw\nea43jKL7Ewpt0yMwHOUTqdBjxWjk5RBLM7JseJ/6rgEE9Y3t4773UfE8xDrg\nrFhq\r\n=rB0C\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"2d319b1fde3b6a161afd8fee669542c94c9fad6a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.14.8","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.14.0-alpha-remote-fetch.78+2d319b1fde","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.14.0-alpha-remote-fetch.78+2d319b1fde","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-alpha-remote-fetch.78_1630597776758_0.7099115729212866","host":"s3://npm-registry-packages"}},"0.25.0-next.1":{"name":"gatsby-recipes","version":"0.25.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e57069a102f8150dc0fff226e4d3cf25ad04b519","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-next.1.tgz","fileCount":152,"integrity":"sha512-xTGar4+iJl6JeQF17xVQ4yghY1uvllVx8OltMv27PS3mONub/5BSbDEpmmaHhUnX4hUwQ1RTzx8KK9RL5cnlxw==","signatures":[{"sig":"MEQCIGIkG5B3F6EFXFRoAkmC2zHied0In03iYQFKHPSgPLhdAiAz475hcBylPqweX26YJ2G/Lp1A3TN1GounzNEphs02pA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMQXHCRA9TVsSAnZWagAAUtcP/RIsPmfbF2McqCSR3n3E\nlet/dFKWd0Mqk8UqAPABeVrF5rwLLC9J7L30XdVVjJvLbUdgyxMCXBY45OvR\nzdZI02AUxBOVuKw6xyaqPtmKGsq2MrHF0t4GAIWycCGbQuncO6GKL2e5uNma\ncMau/CpNFhiXRXLfi74Qd6xlRvoegFb4MFpV4GEsaYL5FXfoxL2W8j4FEMAv\ntTKJQnFWafRMoIBD+N0Cm9IWYB6UhRdynQkv/lVakbfV4AuTkB648WChFkyC\nCuNrSWCHrO/t2wHUMFHKZSkZWiz0JBNBC+XEX3M5EiLgnyKnPCGydox0YmfK\nEcDgK3YRagyJmSdDlhUpG5ZEn8v73ugmUlc1Zf2AbSyGLgGHVA8ShUtpt4JX\nF38BMtog3L2y8A/Sxk1lFylvXeHPfLf/Y79W0vLAJdL4RVZfVZixZeyrhJnd\nWtLc6NEvE6KodkmLRoInzUAW9qpWZxkK8SAsq2fVST6j3v/x8R8RsVhnEl1O\ngMybzSgeTd0zHNOx7PGlGSLnJ+K1LKnSzubG2KlP0VM30Hff+Ln+o9dOGzF3\n3jClJSJsEl2Xmvow41Sf2Iqh66Xxz8CjVYYhFLf4KWIIh5XjXlA/5+tEIn6N\nS4RpOBoSyhN6S16IaK+nmOmdgydLAoD6Xm8z26SVIeKF/1/bEIvt6VuErXR1\n72D8\r\n=Rqy5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f8f1666f92787104bd1c248deb1ee3357ab9a653","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v16.0.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"16.0.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.14.8","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"^2.14.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"^2.14.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-next.1_1630602695613_0.32273335774196554","host":"s3://npm-registry-packages"}},"0.25.0-alpha-remote-fetch.79":{"name":"gatsby-recipes","version":"0.25.0-alpha-remote-fetch.79","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-alpha-remote-fetch.79","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0b4851643a8be65c17c39d59ad389eb440c8df15","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-alpha-remote-fetch.79.tgz","fileCount":152,"integrity":"sha512-quWEoMJvQK6JUQvBkqA/QBM/BonPKdXW8lccP89+XErPDhj9gJEOAQAfp6jc+kyzq5WdfhDcPryquA0C/wVj3A==","signatures":[{"sig":"MEYCIQCWMKmJNemX6L+LnLhmxxKMbvwyF8sHvgWHucGNWJ4aVQIhAK3PBV30Fe6KIZdMw+iK09NK+TPL9+vzrDDuQ32G2fTv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMg6pCRA9TVsSAnZWagAAVQsP/ApatQbVZJ+ePYjKdcBH\n9Y2CJ7SDW08657dNu+qfjlolFO96MMJE4pldTAUvRgm3A4RsWnkYg7a+WIbT\nSlSpN2otlP7ogelWuiOhjjormMC8WYqwz16EMe2J68dIEiqdSXzUsOnNpx5P\nV5sIqPjVAmbI4sGKfzxqWtnLSMm3vSdjrC+qD9e5gStg363ChcqPjyU4DteO\ntNShppsOv/7Si1Aq+79wCjCbuJgRFk8KCdK0u8RpTTNLhZ+n3LFUzVlrt11o\nEPd6kbElnnmyuXvN6xz2acYzZ9yYF6HpF9RByPKsEzIMvJQZWMXwxSEUknjC\nj2VOqc2J68gLLgsHftPfvVqfHi4I79Vf5erNdad1oZzFFzDjcdPgvzKkEqC7\nvTvFUZpZ/C/0m6pVttELl12uRhoq6uPKNOc+xVml1OhpN1Hsly+LucdEQQP+\n9c2yrwNwO0rpSiCm8t26y+TBCvnq+2cXo3bZLF96jpXxghgdrVNswBcKqA4d\nIvD/DosNY40PFs89c5g4MAR7Sl2YOFSHvzUfYzstuEiKhvoZgsF4rWfF0jos\nw8qIqafhs6Vn0giY/7lLd8WacZ1Im6gdcbU1mM+jZ9k9NSdRDHBu5FQnP4iG\nQ9jSLd3GO4tUT++fx1uovEmTSk4ZKN4srAlXRaTT/2zGw9tY/Jou4YlXTZMP\nCeEj\r\n=pYTZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"dc2c74acd7166438e8c5773de38eeeeaa5b4994e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"12.18.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.14.8","detect-port":"^1.3.0","@babel/types":"^7.14.9","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.14.8","is-binary-path":"^2.1.0","@babel/template":"^7.14.0","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.14.9","gatsby-telemetry":"2.14.0-alpha-remote-fetch.79+dc2c74acd7","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.14.9","gatsby-core-utils":"2.14.0-alpha-remote-fetch.79+dc2c74acd7","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.14.8","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.14.5"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-alpha-remote-fetch.79_1630670504910_0.8174320512694273","host":"s3://npm-registry-packages"}},"0.25.0-next.2":{"name":"gatsby-recipes","version":"0.25.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"83d7bd013c452a25014dfe479cfaf60ef4f4e923","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-next.2.tgz","fileCount":152,"integrity":"sha512-ItCQfW0y+bl26NOlSoqB8CQGl3vuCgBjo/vODDCnWPtxqxlyCMWIEfiU1B4Kys29fVtKRP7V/YHMTpxTbBSz9A==","signatures":[{"sig":"MEUCIATnF7zfXMEgodwOD4TQD0QokvLKwQr2ZGoM3o1Ew+FUAiEAvv0ivHLous9n1sprA3/NuKTjolODCPnlgwtPIEr9e7U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhN28WCRA9TVsSAnZWagAAm0oQAJA+HRa1rna4M3PMd/2N\nLVkVPwh+4ikk9HNS+Bondbu/00oDo0cFR74EWMg2X6LmB3VFT9bR1egrzrXH\nE43hcHDtNcsX6/3YV1+1QtHL9MorzDYUr8W1/FgSOUDFHrSF0+zgucezKrEe\nXQV09Orh9mtz+YpNQhaEZ1T1ShRI9rDmPIydjDjWsQSMCrSBNYb0s9wFxwEs\n1goFfSDmDf3C0n6WIC/vLEoPV558IwHyzrNxmwJi8CwMA0Nm/vPStx/WRk0r\n94sbWstluM8xRgFLIXMCKZphFdu/ZSshLVnDOFrRbNRJe4paTG5AUQFHQDxT\ns/eXxsKi3N9r6XprxGXwPHHuNS2wOvccn1J/a42QEYoGOJVITzZfxZu35Nsq\n2tBptYEv7Cwm8YapIyOnlgEd1UPyGNTJsUPN9I7G5XwRPPdj/d/vesT+LqyS\nnR3O+CjlG/fQniGsdH9y6GmE7EN2u6oDmEuoBiBh5EDBIKzpVgdzVBP9Mg7l\nxaEdzh0ScWtsC4naiZlhvtvXUr6xKEbVxbelp2RHzmJrQpEm3lol8sl4l0Tf\nMqj/WYcPLCoaWrIS5NtSkqOWEWBiW1SwHAShb/DX7LgT81JftXCBaReDNaDI\nYErVNPg+qVjm6X0DokrE2V0Zmmv2gFwXmnE2nc7Uc+m6vYNwuWFjbE7f0CCN\noeja\r\n=BBIf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"9e09fb39ddf929bb8751e59bd65de9f98a85dfea","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^2.14.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^2.14.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-next.2_1631022870167_0.4907417888980292","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.8":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.8","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.8","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"cda2ee4412c5b69ca9a2f8621fc82848dc39601f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.8.tgz","fileCount":152,"integrity":"sha512-mDMUjCgwpmjmgL5vIzSrEmF4NggnnCGC9jR5Bsz4i1e42UdtuZfcUdTI4S/ozg5JXCK/GYTuYduEcusI2WLtxg==","signatures":[{"sig":"MEUCIQClKHwGoQ+zBCpYVR3rVmTKpUUp5fO51AjXSXKfwMBdGwIgOC8gFNZMsbdIF/pjVpO5x8z5W34amd92gLos8wtLEBE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOJNkCRA9TVsSAnZWagAAYe4QAIAKXL1+38UzsU8eOvRZ\n3ukmimXsKPtIeugZLapewfl45913jEAsu136Xcb4qqrLlpDzEA14jiRZaVNp\nGHO4n74+rpyP1/1HCqgRdEgWyUFegiSI5Nxmez99x3bZDbWWOE4dpUXjBVQF\nxbnmuqkQiRAiBorZYDOCEBGdlWXPpJFX3hYv/MP4VsD/uTKWitc0uI1S1byk\nu/fV8CkBxjCFvojhxLw0+ynNJ6WX6vDEZ6Db+LFriB399pMG3bta71V6qyTX\nJLuJRUKjXsDoMiy5OjGUBozn3JnmpdEhVgiLYvWm582kxrrgl8/HaSMEFUbW\nz/UuBa0EV2rIuseyfMcI7H5CLorePGYsOHo40B3p8P8FGICTwNIcRA4Wnops\nDnyNxGSbqBeDuHRc8FO7hpRAFRMA19MdhhhNI+pvJcIqRaQ2RIscW2/e6I3F\nJCztE3XEggu4F8neyHGu/vxmwu2fjX08/KP1R3YoaIlp+GtpCda3tMCWOUcX\ncVjn8zSQ+U4rLS0yDkIWotBQ+ALlFcBvGUTpT7CqcCLLFXga93bL9HCWid04\nyipy0hH53/Ju9a+3VrFXE27VJc9ZMU3GMNvQM7w9Mxb3ZyBoO9SiSa0dzP6i\nTrR5h6KKVYHgLn3dq91ftdkmb2qmuyuGCiMPSLqxeHy7B4W9Rw0xlSnM2sOf\nd3XF\r\n=UQ61\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"d8175eaf95b5be567f9c8a9453e955e82edff1b1","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.16.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.16.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.8+d8175eaf95","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.8+d8175eaf95","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.8_1631097700052_0.5887690340889054","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.17":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.17","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.17","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"4eff39979a61b37fc2fc88ca5af3d37186233f8a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.17.tgz","fileCount":152,"integrity":"sha512-xqy65InWHphTote2KsqYQBMnO3dUtKX+lsnbscR24qSCs9/Hd/FQsGbcMAMXtXeGom+vXtoVzw93+ADx59rM5A==","signatures":[{"sig":"MEYCIQDaScP3LD3ovWf62zNMXyP3Mrqj0BJlzSETZADzmoTNWgIhAMk30savmMmPc6PqiNCNcOCh4lW2juq2g6SNMu6LoMX9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOQ1CCRA9TVsSAnZWagAAucgQAKGWSEpV6sMZosVwlIxm\nKChp95sm7rymMinTEHcxcs2H9PjcPEYLc5F7IjSNtOJ2jprv8fSRWlIs0+5J\nVJFrothxDmt4nAzphCP0J6ZckYhwzjp0nBm7cxH9j/zw3o6YaQ0PUjITJQpR\n38ONYGlxcNGmpbLuoUCv1XiXOsFXAOzgDnPKSiGcnElEn+wkjwm0C4avyPST\nkvU5Hc9U5+Fce02hZ6/8YAqsW3nbMlhuhYGhqG3Ti7jF653LEDS/x1MNuftv\nHs9gaiWE1xkmmTU16mdDRRI2Lpgb6NmCcze6XWAO1bCg6IvCXKCTvseusZap\ndGkZmoxUv+QXPLi84kOFbQW2TG7qeqLtZ6dTfPMlaQE9dulQNagpa1h+8uEh\n7lXmOsjZHDwuuFvlZNK02+5pvJkH+YOEl9rh3QlNxmaKw7elrTIK2kRExOEm\ntoBxV1W64XYkh2gXYTdnotuuG9YGxFCVRNwyZBeudxRL46qof2MG95tEgUZE\nQFRhYdD39ZvezhPG1ORAKmcZ3nHAdLdYJSrvT2pZa7hnV6uFWReXjC3dN/1r\nCAuxC71OVtoGRBPxt8RlAApNj6pLMSBPRYivsizmsHCKPUYULIiNb+YmW78a\nIou316TPv3VlkFtcR00kgwxVdkbDYrXSKPrAfGYRzjY4NFxwOUymE/a4dYF2\n33f1\r\n=TIqL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c61e52869a35abcb739dd53004585e553e8a2302","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.17+c61e52869a","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.17+c61e52869a","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.17_1631128897756_0.07447895945716643","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.22":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.22","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.22","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"1b0318d59dd638ef15fc2d07b32b2eb10e9d6b27","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.22.tgz","fileCount":152,"integrity":"sha512-mDMf5U2qcRiXl2XBmK/DTl1RWD9ho8a3dMqvNHFVqZy3wOLv8AEt/dsBNcHwF0q9KqAkVYY3rkoRLHQmEIqogg==","signatures":[{"sig":"MEUCIQDfwjBOmpKxPjR4BIXOx7cirM0Rc2QkUBUg0ivyzQgsKwIgXcdESGQ+0vLo7og+ipTNhpf7NpWx/ZLcpqWzHITlEYk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOgtTCRA9TVsSAnZWagAAmZ0P/jJlG3xJkRck4hldQ/RP\nucyax4E72yz59T2MgeU8KA6czaQ+yUq+00pSYOC4C8D3XBwl06DYAWZwO9Oa\n0b8eudz53aiN29iMao1AcmkppOZw0DVoKLqVhGLq0+jUBLH9WHPhyT44pry2\ndbzCLIK6MKiCjZawMNWurUMT4Jk2lJxLQBKlTOGY8XwNgFJyfapCkpjWgRB0\ntzO5SBDTX08KLidAqTAFaOnNqDCL3Hi0HEfODi2fvIx2LxCv+vqdCbzKVQZ9\n+iD8TxI778VpJh9SJ7V8Eqc7VmT6nkLWgpY1YcdraZb06+fQmXq+P1CJfRKp\nK8iXUuTbuiHEyVX02sdXs4DYO2AslijvKIPW0mp1NOqchGSST7/3j2f11N2A\nw/7GZxPsHHBhE17Er1QQsZ/Vi/H2+agyGt/8fRCBb9vcjKAgg80nHa1bvdex\nS4XfNwrcgkEe3UZIMD0+2ESHKvToPqly4OskHm5+BbV3CEgVSsXsCSsHA5WM\nB5hjw53icD4mctUZGJQ6ouQPNky1C/RL/WWMHEWyytVGf3DRnCGVEWP/7K86\nqvApAetatNbzHT22cqXESCIQLQ/lWc8wXFcLvhsXF8AobjpkDYhSFAsKAl+h\nnd3IMxHg9Yg048/hkxHCZtosz4CPHD1QnwkdY58hj+QXiZCFFsjDb0YOrjRs\n/7/B\r\n=3mzB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"97544d9c20a18a5d5356c894113d84144df275a3","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.22+97544d9c20","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.22+97544d9c20","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.22_1631193939503_0.7995921732421345","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.24":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.24","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.24","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f24def16837e026eed68384e016ffc5f05fe688d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.24.tgz","fileCount":152,"integrity":"sha512-4ytu8DuzvhXt5+ZzfDAxTRJQULOedJuwWVE8AmVFyS1KPL3Q7f6hgN8SaWaiRviEZE6iEvqG1EO/dULIIyIAYA==","signatures":[{"sig":"MEYCIQDshx0hNkZDseE/5cCmErZZexPI1ycxxPCwezdVyTPUPwIhAOoW1oeI8Tv9y26djxLooiJ/bln3ommk+tKRxLiVN+c6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOiTlCRA9TVsSAnZWagAAc+8QAJN/bM2bm49+sE7GEybR\nyFMexDv/myiQcikAxvAwcgbSfq9ZNP2SzF+oyc9mXLnfahSAgnmFfmLAtiH2\nvhkPEasTy22zeTn2buobG2wqabMFVUzsVVberiylJiIgjgJUxXXH5vYmQ5Us\ncitsHzXvuZCDZM52K0B3cmU+7TJnVbcLpk7BzpxoJpswmc+sXoiE8YVL8xZh\nD2XZLjDCyfVcQ4a9d/PwRstjpKzbPUlXjIT6cvKHW8D06INwaYRVm0l7Bi/B\nk2t/8hazoa9x/UOfHDXvGb1Ayo2qvzSNhj/v7wSE1IOCZxamcF3SbETLBOX/\nK1RdTHRa4NZ7bSrxacCb3iAcv5LSepiRJGLZIjqZjhX8EEOqd4QkWubOPr28\n6T62c/NNscZwYdfLzkSCdVkZrpzIXWdEcSkwWsoeb0HTQdylw+tt3zYpycFf\nvUO8JB+ke6JroT2znLUQG5RXyk6uwPT9FzMl97L6zNbUi2N1eOrQIxtZdtfr\n2AXFGQmpyQ7aOnWsDPGm+45LrKoMCJdsXISe5px5oc284puYhcs0LZDHMr3+\n5J39DbVQEQiFmMvTd61TupEH1hTNdMH+nI26r4VPuBONI3E77K+X7rlHPwHj\n62uL1HUlq6Cmm7f0/sYvV2bhtfBRdIJHKAODfCYMRxF71Ulo2Cdln5RZrRMF\nBISl\r\n=4T7q\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7d81b99b95d9df79ff1985892aae95b4f187b77e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.24+7d81b99b95","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.24+7d81b99b95","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.24_1631200485606_0.43547938276775633","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.34":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.34","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.34","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"db9a3af762065edfe08dba8547cc412c4804e6a1","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.34.tgz","fileCount":152,"integrity":"sha512-tppYiVspE2t7jXgfyaVsgQvcNV15L2gGgDmN0Sr5agpCcuJQJK3rJtJLhE5Kihqt+EYHpOz2UlspYm1WOMPQSg==","signatures":[{"sig":"MEQCID04A7W+CCmni0GSpgfs7bY4wWa+Aoo+pxLT4dW/MVynAiAyb1yJABOv2XfBkV3eqUW9kWa3KF7QEWZTOtrJOa9HzA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhO2mhCRA9TVsSAnZWagAAn2oP/jCUwKCVvZLnRhb10HOQ\n8Pnd9XpRjtgBLtr38fTDqBLXVM/oGesiXLXENDhQtWP8gF1PeYaAXhwDvcPf\nOP095uNE4xLOd6sjfWDwkRQMzAlUZDsVV5o/P69QZJ+h6fbbeZBJfU8bCpZZ\n+y3gHBBcK28Vemd5NOaySPkk/JAIrKoY5ikRlYFgK1cVZEM7Oxq58IsOUwbS\n1bZPdf86OOUN+I6gz1Ru9SM5195hLRkELZjpW2RM71qszp4mxXD6NqjggzeK\nX1HGAVZmlBSI397Kor9mEbMjuRVPEm2pugVRUVQn0EuJXvpzRZQ/1UEuWBTu\nxSUWysgyqd8k+4giOZKUjdpQ0hBNLzTPfEn+UK9KyEhUHsSLEPM1rzyMb0OD\nqCrpBljNXY5oS9WQSk70o7Gq7+0Eg4ILBFNSddnk059i3FgE+Fc0B9uAyl4b\n6tRInK6W/aPNqXd6tiLlHb3+vOOCbwujywVOUQU9mdI6IZAyn9bH3NbppIyL\nVSe7YGKfI0WFkI/Ahyiqk2RDv05+cu6eM1TUpF2ddbUxdNbFgj3bvcG2pLWJ\nNm+QqVs1Im5OOlwittZhklx3+wJ7iqxCMuqD20h9xg5bQ54+JzCKRJ8Iz5NG\nLNwBHOPGjlvMNejbaY4MEG0wt0OufwfvqcEPz0n/k91rM1Ju7tQ+b7HtJ27R\nyiHX\r\n=rybc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"dc4dcef474beeb02dceee17aff81a72c8b875c88","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.34+dc4dcef474","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.34+dc4dcef474","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.34_1631283616845_0.7705150250982502","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.36":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.36","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.36","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9ce83253a7c6b949eb62547aca9c38825091194b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.36.tgz","fileCount":152,"integrity":"sha512-hFLaQxmOhWJCO3j/vI8x8WGtZwNMRoH6rEXcU0j/K2Wz8eHmZdhXqRolR/A3wtris9Zaa/EDIEnpinwQ4UD4Sw==","signatures":[{"sig":"MEQCIGeO0YTWFYVC76b9vLvYGxVhCvr6tuuZ9M4K5Lrl+n+nAiA2q9YXhgLgSRH3XUJxqGhgZvl1adAjhIW2b1A5M2uBRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhO4+TCRA9TVsSAnZWagAAi+sP/16KxZ54nOjhjwi5Psb3\nm1kRJxi1Llr9Db2zW9yjdSqU7RWFD3ladF2IPldS2Iaf4gef4JjKOjKL91mK\nt4x1LxypdbkfSwq64/9AaANqeStQgkAwOL0e2tnWDomCg387Yrpb6mTl2kXO\n2hicA5ij7FpEKB1ztxwoD6YjfRDnoWG4rvTe7hfivVihaT6bE/4Z1F7AOh1J\nHNNjh6fr10RR2UgAAuJUhrU3VdiCGgYDNDRghF64vUdFXpvBqG+88c4vDWmV\nVTSnv0LgBh4yaWYMv0BAfLYe9TMJD45WQ3ETwhwmgSoU2EcfkztdsSTtTHV8\nbioaXE6h5AyefiLFgGQRbIxn4L/TqHdbDlLADK0Z45NHhYeABAtwpNBclVGF\nk+PmCcwWay7z5enoF8SdKQgj1Q26Z6DVQeESkckW7x90PtYG+NumiFDKDJQf\naDfI72+Jgih5COlO6Yb1ieLgc9gKBcayAS2FVKVa2afLncnNl9wmBtBafUzf\nT0tAm5oXLxJDDDulUsiZygAEwTl7EKoIkzcGL5rJo1DxZW9HVE+Z2u7nHo7u\nUu8ZADOqx72D+aTtYUT8wZ3Opopi8F2WlUHelX71CGA07FlhJJTdU9Hb69MQ\nFvtFnm0e7UDJGZOxPG83aD4L0950Cs6NdfOibBR4pNAtbPCUCY5Shq4r052y\nN6nO\r\n=pcjg\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c494730972f0e8113537f37b2b61477b96e9348e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.36+c494730972","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.36+c494730972","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.36_1631293331548_0.10720180632224685","host":"s3://npm-registry-packages"}},"0.25.0-alpha-qe-sm.46":{"name":"gatsby-recipes","version":"0.25.0-alpha-qe-sm.46","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-alpha-qe-sm.46","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"13c7f55c1c7fd8d3bf038eed2dd31a0466db7efb","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-alpha-qe-sm.46.tgz","fileCount":153,"integrity":"sha512-YAo2LchJ4B71mzNhuuT7o1tnVpaHQFIXdA8SppcfdtrS3fADmBAz4Q3bwC08ImNVl+/0x7TgGYtgX2+iLt/z1w==","signatures":[{"sig":"MEUCIQD1e3HpVF5h/B2gA6zntTcqgENxMMjZHU1HQH5tQaOGgwIgTBeWlwIFSYpHL1lSJlX2nBfg5YlpeVQ6N/mz2TwPQDw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5245559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP3N6CRA9TVsSAnZWagAA/h8P+wSsnFdiktVvhyp7HY/L\nHAI0PJ2kHqeLARlPhjwior1X9N6YAJiaPeLizUTUEXmYWEhTgozxhri8vK/y\ncEZ+WRDVqPWDp+DOtTvfKdtqhsaUnfRYt6kM/El4DZYhPO1afgQ3m69vBJ6y\nRQOau8qZqdmHuMxxmwLt+B+aR6aXrkJKYx8QRpLPoi7aJRK0t5+UqB0IyZ7O\nzxy3Y4XHLfGEBYlau3JppHnBZxZPNEg0kcX0CitJ3pMYYGxmvXhjq+PI/CnY\nDbtTxzyGUM5glSDKPx0ldge2YQ5rArtunW4ZxBYtjIxoB2ZwMKGvumz47YWA\nTWMgpKS7BO4XelIODYK1AKgnqXOEignKcd7K7msUP/ntkeu4qOtzkMvWWt0h\nvdagshapWO/Q/YmXvCQncLU8Txxg/wtP0VcPIgMbjdqO/aF5nVl8jKs8nbu7\nFHndfe40jwXstC3HZiLV0W9GukQbUr71Po1G0cPD466l8IDze0hmchkqa+K/\ntyXPK/+nsjBVnMwH8X2Vr8oJFwWTM3HrPI0d9UVuAUtZTr1G8jRgrMEyZ/vl\nN0P9lT7ODi8kzSN2GvWW6S9pWCnVmG1AmBa6zeYZb3kjkXefQ0b35FMYiYBt\nwI2gmSbXeal36ZiRobY5TRfRRfxaAOUkzwbIQxdEaXHoAH6fG90caRwFo3s2\n7UKy\r\n=Iodn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e26f3dfe37a8468220e7b5f446ea731bdade41c6","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"2.14.0-alpha-qe-sm.46+e26f3dfe37","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"2.14.0-alpha-qe-sm.46+e26f3dfe37","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-alpha-qe-sm.46_1631548282698_0.7750138004975264","host":"s3://npm-registry-packages"}},"1.0.0-alpha-9689ff.13":{"name":"gatsby-recipes","version":"1.0.0-alpha-9689ff.13","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-alpha-9689ff.13","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"0fc1411a10f504053c82cef00a566624d93122d9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-alpha-9689ff.13.tgz","fileCount":152,"integrity":"sha512-Z5qCr9wnCKQi2z/JoDllJ1jCDwbh5L1xf2qStsxTgfptZENKXeO1oekO6upLyygJy8Su41mR8m+UPKIhf2PXnw==","signatures":[{"sig":"MEYCIQCpy0CsgQEVUXVtYvXIW8KMUYNjjOuIvj0V0IFo+i/GjwIhAMxO7CueRA1/7hX3RwJMEE58DdFFHxGf2UeSachgZnZr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP6kPCRA9TVsSAnZWagAA76AP/ik0XKIrQ48sXgZaBAW0\nv5bZi+cVTP7rhD1g8OsbES1H3hc4m9UQnncqQRp5TKwkYUQO6ChbWUEnF4aa\neasCVo8YSzQ2lSHLldHzp9cc3Qs6DsOAsbXmyTAn8X3Tccgd4yChIgB5DodG\nVp8Cs+/9bK/WX4MhZBWta6cfYgUf40nEndPioB+HzD7CuJBG1sG4+Of54fN+\nicjD1NbJ3bw6yuy3lSWF1XXZTXw6dydA6Pw6vJ9IVvztITErnPc6hyRYozGi\n4mRFIeYktadq9+hDHMRwA59ee8Nau+WJ1JdeCd2mzbSxT+PR2Ji5CNq0olrn\nE0IZFnrPpl3gSsTox5b0tSQFfLEhOsT3NUdfiHUZ7zzY3E4qRsc4IZylZI1z\nYYl4TlFUEgojbfU8ZrwxdA7aSYqy0Jb7qQ7knDY7nv2MbC64z3EaaOQvAgRz\nWtLFGFQUbdjfmd/ys1F40X2ANvcPdo5pkvaLCFCFCRwNXgWAI1/9EbCzreq0\nTOWH9+3XiTa229ZrjXvgcMzXrsFB25F1WQQktaXZJ/sklIrdyRGCnOOrIASe\n4YnSgCx94HLFQwG+r1ySziY4Jvr853ZGk5dVM4cNz+anPGKhI0GoBhsfa0ld\noyDcbETV6UUh358M4X2Y/F0HYD6P4AhPnpJf/VY3guvvukCDRj5Tj3CIAX0h\nCGwT\r\n=13CP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e9ea177732acfb87110861987f5dee8f2020da6e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.0+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-alpha-9689ff.13+e9ea177732","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-alpha-9689ff.13+e9ea177732","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-alpha-9689ff.13_1631561998977_0.8887501708602821","host":"s3://npm-registry-packages"}},"1.0.0-next.0":{"name":"gatsby-recipes","version":"1.0.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"82581041774e3b0279d51322ab5b6a40862b372d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-next.0.tgz","fileCount":152,"integrity":"sha512-QHpdkjpT5/CX4BUdOu54O5UX7CKEeKIkLMeKRhvzh/di4BJHHPFlerADDRnJS5tjYTGx3E1966Zm5Jf7C75Tfw==","signatures":[{"sig":"MEYCIQCobkhu253al4F5xXNic6lNAvZij7980vHNkS2f2FW5rwIhALo21KzpVoXHrfTMxeBKinNwX4zcSZPa4H5U+k8eh1zC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQHbJCRA9TVsSAnZWagAAKLMP/iXNnsZ1UMYHamQidinc\nLihy1N9VTbKE3idd2oy5Pq1UMhzTmNA5SBH0gh2Nvw17vt6+7MPE2mCSp9Sc\nhyXgg3TE5/ocoPqDuD8/6S+mzSdvE1ADMafCHIz+dkaOKeQH4zX9sF0zw6Du\nJV7ZmttLwYV+0MnWvVjtB2M8cd1LgKVajdOK5Swo66n/251ytsTDZLUCR/36\ndxQcRZHITsx6WTUdN2ozqLRr3vqgwZn1hUuIhWy158ncmM3a2b9tGlAUqtW5\nrrMrRzGC6DXnBZwUSKBGXW5fi2MWtQCGOa8QfAw4wLGA2pVvt5S1jlIb3guk\nAKUSjEtsTGqm+BSa8S6K0UHZZ7zl4XIku2xV5/m79x+rBV2qyBuH3OOB/Isj\n5E8mByj5tML9QVq6+lmIwdAWuFSaPPk54yPcSkGebpQ9cHtEssIeNg6Gz5NG\nVDTWbkq7lmkHnQbw3IvLNLUuBpFVRz8ZFu6YxmKsjcqZmF0epcsgE9jThPeF\neElcjcRqoZ/l+CDbVv+7qLT3adN+QYBdqLepLDJE0YdNuHyXMsy1pkMkQvKd\njktB0a2UTnU2oPglH9Nhc/FljdkKOWvXvcOguX8octEiVcjzLAWuh4jV9pzG\n2w3TujBs4miOTls7al9KgdCc4pb+1rNoG3LAToRiUvaWYTgSHWKaKK9ljdki\n4diV\r\n=WKfO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"00a968257c0a73dfb06f81a974297f7ff76443c7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-next.0_1631614664910_0.259401185841158","host":"s3://npm-registry-packages"}},"1.0.0-next.1":{"name":"gatsby-recipes","version":"1.0.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9416994ecef1a50eb1490112aaf74d98be21fc52","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-next.1.tgz","fileCount":152,"integrity":"sha512-11u/fmzweINd+o1YNU+xIsY/MER63ujdHLBxlQCD/6K0OQT2FuAH5dOo97VIjbvLmMWJvpQvWeSijEoEMPjABQ==","signatures":[{"sig":"MEUCIQC1KObQq26M8AnYb53+cGCDV9VMbMPDzoZgfJqT4w2TEAIgdU/orslecNoJXHcHB1tTvtJloIQM5xEeT1IB0F73e7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQPlFCRA9TVsSAnZWagAAVrMP/i18y+lTiWb1b9deSe+5\n4bMopsWRm0eS8hAK+RmTdOIgxOdV4mfktpB5ANx99qS8fKAmSZMRMJL1+CdX\nRlrlnAPOPrFE8ZWVbcy/3lCxKP45D+WV9AHGei7cnOCCTEUKGfJMEJ269i2z\n+kKClPp/8IR7zyeFlE4X1kfQavamqHkIsBbAhZKz/NaFX9N/OU0SLgko1tRX\nxi97fOegOhzj24J5tClxIwFzQSYyn3EAImA3PUP4hTLXpbW/kLCtDtfDsne+\nojsiR9P3coq6Cmrx1AFHcvAK6WSjT8N3HEEwD1NBjk6KSAgiXoswy98SXMCy\nMMeOqoBGj2b8KS8Q0V9QPp5RR8TR4iNctU0IqIR4r8AD934Ar1aZZbDrWxBX\n9927Iy0FPuSxpSXm2QjMYPFUNPWX2NHQxnRWz7oz6LRBtUE9FWc4SMdbZ7m3\n3dMhgcJw3KVoDXPVAIH01fPlAxrmbvFjx/SvjQMpB1ZyaFzCgi1DW+m+110+\nVeSxlaLyDY8YMN2Kjxk9CdUsUkm69DYhMxOBoAyoRDdHxDhfHaL6vr3Xd1Qz\nEfQ39Rs/xGm5ns6poDuuWK/D4D199MEj5TzGIwAT313QOyWpXkJVXSGkaC0Q\ndt/2fwU2Ld4V/i6sqrUtjV7AEqpprAw6OYkLkUYgS8FEeujvO9Sw+k9Lbt8x\nWDEF\r\n=sPD3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"7c726ddfce2529352d6a9cd0822c8146fded522d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-next.1_1631648069340_0.0904696533849576","host":"s3://npm-registry-packages"}},"1.0.0-next.2":{"name":"gatsby-recipes","version":"1.0.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"389e9d0fc6de96f893cd7b3979eec05fdad4697a","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-next.2.tgz","fileCount":152,"integrity":"sha512-K4XfVOqm+Y6jP2DYT5SLw92ocpkSuAE6CKVAnCbDUw2xb06T/8J3UiCUIeijrfLePFLSejFtvmAmX5A/++fE5w==","signatures":[{"sig":"MEUCIFZVKjGIIk9GAgs6t5OOR8tGEZ1oMEN+66hGTbHrPUv3AiEAot5yhk4mo4FsH42qaRWGcYg/E9NOuJBZvAPTUi1izKs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5235034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQi7hCRA9TVsSAnZWagAA88oQAI3ZC4pim2eXdHSYOpW/\nYOPk5sm8QMtn8iZRAEU/WaDvvvG1qNadMWkHxDf5b+U+zkI3pNUMyP0llMeY\npu4CF9Ld1ocXlmN8hb0e3bacd0h4VWjlQNg689xYHoeTmhS8dn7S2iPAETeq\nsQ91MnNV7/rNsKIAVtsDURgil7jxb9wB+zhT+rpKcZEp9wwkofniOEXvDwKF\nXJNXzhI0g6XxYU8ZWvV8GKulxry/BK39C6C9POoNyjDEC5DrCL0qM//Th7FV\nWF0o8BiN3ZXWkvB8Vt0FDpQfOtHrdR1+V3Sy68Z2W6/G7YLSp2PAHM2vpvqV\noz81f9igSBhLSeaXPVyVwSALUMXDj1O3WNC32fi692aIXJ6cHv/twlDSZnjF\nwnnOd7bQjfLEYN7WFSxp42XGl7fH/C6XNFT+7vvEEPFD5WYj9bCF+D1Ju8oM\nradnmumjxFUc+qQ29STS9eByioa8bz0IA2AdYvhAOyalD0i0T6QetVq2zE/o\nVkQOuJlymaEr8O43unxmghxeusxcW5iTEaWS5UnjixZdPOgRPU3mXUQEdTcU\nXuTtCTXx4dbZTQu9O9R63Igu2M52nFQ3TeLnwdss/LwTarjnovGBSjkB0drU\npg295jp7a5T+nnPWAAYbKxe0KBaDtYSwkPWe1HYytMpl98pB75UZhipBUS2X\noG6H\r\n=cTe3\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"fa70491bb6413797266d003e2fed7b680e964fd7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-next.2_1631727329476_0.5733340738505135","host":"s3://npm-registry-packages"}},"1.0.0-zz-next.0":{"name":"gatsby-recipes","version":"1.0.0-zz-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-zz-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"9ef6f174d9cc8e0e270ccc1f7dd9c31c435f3c08","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-zz-next.0.tgz","fileCount":152,"integrity":"sha512-mOyn4NJhODlUU6abagRLkdSo8MwWofz7MfCUFK2kgoGbYWrVOuiWxGW9tE2gxflrDVeoZ5lRLStVUyzjU6IXRw==","signatures":[{"sig":"MEYCIQDEDRYMa4BVVNqcBw/67iumVcDi+Xiyd5O7/NB/eTLG9AIhAJJh98mJufchM7hyHdxhDPFI89cLGQsAzSwtfKMOq62c","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5235074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQkd/CRA9TVsSAnZWagAAhF8P/2lKbXKRDksNXoqvWP64\n+7KVkatO5mplOzd6PG2DFeaJfdqnM0GY4f7L8cK14cxuT5vVH+YSLhuIgKCZ\n2YMj7E3rsatTpSf3tNPOIM30Q0emcUWXs2HaQFG9iCnOtMk46tejDBPsZo/w\nuUL9TZbeaNLho0cpKz1T/muQK1EVm61UZpHayMWm4DQD7csmQOgYvtxXMLaZ\nrQJVyUTNq9BtKOL6Fqm24oHkmQdOCs0oD+JZt0rr8RimS+3CGUPydM7XRH+v\nqh1b/tg4wt3TVrC5GJO3vq6kIJwAnS8i22P1Yh6o61iNxk/ET8qjyBH/XNdd\nGZqP21dGrIiSTV5rtb9kKQBe67iMJsY9JVa1+2vSWZcvcHwnk5ubyPHJBclI\nsC6NgMBzXp1vktRq4/Aief/m+7KLg26Nm9WtX1e8L1EDZjAqVTu+r9xtMqbL\nyYWFWGzZfq3ojY1I29fMC3s1y2K0z/ybeskgrY2B2k3pcoCmbBqyqrX6wBp7\nzrgUO4Fe1/ZX74ZJHpoZ95l057lDyosnIaNvJnuVaZ+/RpXhdf1ZrbPBLlPQ\nSYBVvQ+nDk70PpKxI9L8AW7p7Bj+QEg1ItkxSUlZw3NGbnpzIkaCcT8W9bo1\nlJwHCHUyZf/3eln0t4Ojq+EDpy6oE9+qeRdY9E1Awww6MFikmuNc1Qd7jHEF\n1kGv\r\n=PkOY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"fa70491bb6413797266d003e2fed7b680e964fd7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"3.0.0-zz-next.0+fa70491bb6","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"3.0.0-zz-next.0+fa70491bb6","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-zz-next.0_1631733631585_0.5534847474545515","host":"s3://npm-registry-packages"}},"1.0.0-zz-next.1":{"name":"gatsby-recipes","version":"1.0.0-zz-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-zz-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e99f65cfbdd09d9f3e8743c5c2d046f5a2c9cb6c","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-zz-next.1.tgz","fileCount":152,"integrity":"sha512-sis4QxvAq+mdfo4jwZ02W14ZcgLtQgp43/7/W1L6s+TnkQKmIwY+7LDjR8F9HIRDJqWsMkqJH35LH6HU7XJk4g==","signatures":[{"sig":"MEQCIBcFi/ZfLPqIwxVrnzOVREGGxngKwt8YwCoDujKfs3bOAiBv53EkOCdJ3mLmbLR059e2NbxsHFi0k+9dAVAfKomKYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5235043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQnfvCRA9TVsSAnZWagAAqGkP/1Z5q+hs+VHT8VNOD8UM\nDzI0swj+QRrja/tL9B0cgqMbBXgTTnGNo37Z9mOgrS5TJf9HPQYw7wzEtcIv\njNtTCwQiDTO9qPSO4uWFFeOG3HMOOe9VdZpj4vs4/B82JQTJdJ/gTZKylhD0\nUVDR0m1b+oXHJ+Qh0sxO8JSyGMBv+UBu2Ehg83ACghSuJ4ELETPiWdqJOQsF\nyz0G7sXvs84wnUoO8S0ciW5fPEwsJdOZiJEgaso1T4by3f3WEaYCGxrzrTrM\nRnQfg5vFUJBraR94dwXKJttXvfR+Nv9/Ttz1tjoNatpARE2HWGgBu4yrffuE\nBbKbFD8v5Hl0RKpaHOHcSwIzD8QEjG/ZXud3AytbPLCIgrwVBDIsodl4+JDd\nZh2OS+JiCv9mKfZzVyOh+zEKxsgpfsQSE+XIBMMaPBTu8lrHob9TlZWJi6VD\nwGNWx/DN22YTs1Y8nwycRRu1HLLcQGn+zVfc0+Z48jm4W9bwGlXaoqqTMuhy\nCFREeDhyUkx+3EANoR/L/LQ6SRLX05Xmfn6wvhxx1bvZ6rhMhqktx0/Vcg1v\nj3HANMnfUH1CFfsFL9n9VAGDHmJstQyKcCVjDBPVRSmzEftikqIECJYcYt7l\ncewLxzRYJxQrREbNNMiWoLObyW7S/kD26ZG98whC6bgdOw5Du8cEoGt8W0z3\nOpzf\r\n=afor\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"1da90fd7088a47e0a94bf3f1fbca1e571808d843","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-zz-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-zz-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-zz-next.1_1631746031007_0.7250447395087569","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"gatsby-recipes","version":"0.25.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"jamo","email":"jamo@isotalo.fi"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"60df7d82344721ad06d4f221a570b6efc38e45a4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0.tgz","fileCount":152,"integrity":"sha512-eEbmmAWY78pL1zLrx0M0CNC4fMbzKza/Ug0vSQ7egfAqNk74Lt0csgODRGdBLVHbmRRKYmJpJIXK7NdE+ZWh4A==","signatures":[{"sig":"MEYCIQCsqGHc8HKT1DccCcUG3aMof6i6gVTiIPhcB0IhoBWkNQIhAP0Hx0CyUKFVzTufgTTx6krYAOotBWO5xli2uYcvXE82","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239111},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"f3f1bbc4b75e4ede40500e899449820c958a72ff","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.3+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.3","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^2.14.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^2.14.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0_1631906314021_0.6264711091698816","host":"s3://npm-registry-packages"}},"1.0.0-zz-next.2":{"name":"gatsby-recipes","version":"1.0.0-zz-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-zz-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"5d1639fa14040a82cb6d873f50c121c42bb54826","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-zz-next.2.tgz","fileCount":152,"integrity":"sha512-YZnp5eAoffGy1160tHfiivzLoEOLqhFmdiPKqoQj1Ti1BEcjM4N8e1vx3tvuk2OtS703ZN7mVwsORs4htFC+rQ==","signatures":[{"sig":"MEUCIGBgA5tINxQwv1euA5xxGRdSlhaqZ4ab1Z8aItynFpj8AiEA2Qs81juqmGsrekVCNmagAZ4U7pkgprLlXC2YO23qp3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244354},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f837358b1511cf46b9a112b13ce5a9d6ec58c131","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-zz-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-zz-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-zz-next.2_1633468568421_0.38441383552185426","host":"s3://npm-registry-packages"}},"1.0.0-zz-next.3":{"name":"gatsby-recipes","version":"1.0.0-zz-next.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0-zz-next.3","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d3957dcdca5a0d051a622b1b79688c35bcd68094","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0-zz-next.3.tgz","fileCount":152,"integrity":"sha512-/DIv9McRkrYdusrwgjvdyNz3sZAQL8OPoj33rKPmTuwb5hfh/FsMzI15HknlneWx0mK3zwKbhrqImPCx6LXbjw==","signatures":[{"sig":"MEQCIFJ+/N/sqoO5DCKoX/SXFMsgshIyn3fUMyTtxGX79UB2AiBtkhnV9REmD8Gwy7zmgNQTICd+FeI3yj64f2+337AdkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244354},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"58d30fd9a5d85a31a29a404ce01b74fb5e7dbb7b","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0-zz-next.3","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0-zz-next.3","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0-zz-next.3_1634023890121_0.40212028610554085","host":"s3://npm-registry-packages"}},"1.1.0-next.0":{"name":"gatsby-recipes","version":"1.1.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a34cd0852e263e1ae68b96173b9bcfb1db9c6693","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.0-next.0.tgz","fileCount":152,"integrity":"sha512-IN1BCUPtg9hQvFwnupyT7OH/cOEdmNCQuipC3bqgkRDc0qwd3WttEcxrEzsoMDFLK2oloV8WX12vaUjfFXVhzg==","signatures":[{"sig":"MEYCIQCrQBazi4sgEPt0xMZvOUa08ARldXGuYBOF/GXp8jQ9/QIhAN5VI9KufcW8IJeVKqlX5JpxVxscHQjMmFLjhbR6GFDI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244345},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"154b05987f9983ef95067da282ee8424c2e79d98","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.0-next.0_1634759687327_0.7378126939633964","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"gatsby-recipes","version":"1.0.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.0.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"e83e9af5cfda05fe3e035a1103556b82591949ac","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.0.0.tgz","fileCount":152,"integrity":"sha512-uAQs4EZjure7DuxSEseG2r4pcDz7SZC/6RepKVvdlCv+ihQQPemj3y9PujoG+j0cQpV0U8fOV98lgku87UHwUg==","signatures":[{"sig":"MEUCIDT0mHgNxX9HarJMd5Y/8qxlvKuwYnM9Qj418CHmnyTLAiEAsxJNyQIYjz5CNpO6r9C0BqdgqcjqXnNlgW598eZoMn8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244560},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"8d07242926e54f7c0819fbee84c152a27ec77959","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.0.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.0.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.0.0_1634817555967_0.8197917994651567","host":"s3://npm-registry-packages"}},"0.25.0-drupal-next.94":{"name":"gatsby-recipes","version":"0.25.0-drupal-next.94","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.25.0-drupal-next.94","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"d00f3319eb2def0da10da3e4444a315a529aaecd","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.25.0-drupal-next.94.tgz","fileCount":152,"integrity":"sha512-neuTZ0r7V044ilvjTslo+MqgSbikJ/pUMzpmYHeSX7fVTHWmRFb/GrMwEjkQtnczrU3bXTneyqCY0Qp6RiTUQg==","signatures":[{"sig":"MEUCIB3Hh2ZJdZGkWe7vmRurFEMUZMWnf0ZvM7+wdlOtBJ8EAiEA0L9Ik+KN3CLNaAT+/DK9fbYbA1wN5ZuYb7X3LqGJV7I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5240567},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"e8d49a22fa6397bb3baf3d2b1ec720ca60972895","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"kylemathews","email":"mathews.kyle@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.18.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"2.14.0-drupal-next.94+e8d49a22fa","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"2.14.0-drupal-next.94+e8d49a22fa","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.25.0-drupal-next.94_1635209657146_0.7018833187585642","host":"s3://npm-registry-packages"}},"1.1.0-next.1":{"name":"gatsby-recipes","version":"1.1.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"af61780cee82f9e724e5cdedbaf78dd568b8c5d9","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.0-next.1.tgz","fileCount":152,"integrity":"sha512-JYGI7tZA70XJs9iOs6c6T5sIkLhJ2DGYSFJh1up7m1arwZ7JxsJmkJLxt7I4lDbDncfl5zYruDaLEC4m9qjfhA==","signatures":[{"sig":"MEUCICp6BDgYlcYEBlGm3ZusxwDkeQGydv94bkxSvEYYuywWAiEAwlUfwGVdFmK/Qb4E0X17u2nE2hSPTt77aXQ6WGg6TCE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244345},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"413680ccab048afc18fcf7ec814a22039760afc7","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.0-next.1_1635505398084_0.7619801496865284","host":"s3://npm-registry-packages"}},"1.2.0-next.0":{"name":"gatsby-recipes","version":"1.2.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.2.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"98b7ccf1a0435ea6aaaf076756223b8ea5e08b3b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.2.0-next.0.tgz","fileCount":152,"integrity":"sha512-d4zO7KrDKfxSh8cuni4aY+TwMlbql2WkDYP0P29Fd3kt6+qtk886oEoNPXNqlekSfNWPdKtKEjvJTYjPSLANVA==","signatures":[{"sig":"MEUCIA3FLA3Srgv8sW0RbfSWXQ2uZSjd/Tse26nwiK7yQkEOAiEAiNM/za7qlsqzJI6nhhnMXhfgSkJP8Nt9cLtZ1iTXp8A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244345},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"909af608ee2a4947ad999bc1cdc8b672c72e1a3f","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.6.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.2.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.2.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.2.0-next.0_1635757885842_0.5564144972367282","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"gatsby-recipes","version":"1.1.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"94d1f9029d730a929a807e70b28973636070a02d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.0.tgz","fileCount":152,"integrity":"sha512-9eRkQSZZK574J7Wg8nrt1MKrcoZ63sfMVk6MXAnipBTxb+YCzSfkTWmNC81HxVeHbsVB2XcVnSQGEb/Ho2m4MQ==","signatures":[{"sig":"MEUCIEauuf5bFX9yL91qHtCSxI2UIkhqgbR0MXWMCA5RTURZAiEAkTMSlIy0ETGJvjV/2DnEtC8L90AG8+7LdpS8btDOgzI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244324},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"4086ca523d1caf68d44076e361f00e7b4b96c4a5","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.6.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.0_1635867448716_0.628699407205735","host":"s3://npm-registry-packages"}},"1.2.0-next.1":{"name":"gatsby-recipes","version":"1.2.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.2.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"888ee6d2840a4c1131ca4ae12ea0e5f47da74408","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.2.0-next.1.tgz","fileCount":152,"integrity":"sha512-ODBfl4UVnSbaCbRhhFYeXQpTTIVpL0tu1K4kEn9BI4r1ZB/87zE03/rl6ieZNXIk4qJMkqrPvezEUyznfjMGUw==","signatures":[{"sig":"MEUCIQDb2Q0/AVQWx7vhaXWL6AYFn3Ap6spqjyOAHs2EgNrEHQIgMehaZY5v1phOeNAGgq62ZpHTFANHIEtIcVkU7MTIVIE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5310243},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"db7f2666391fbd92f8691aafe143106e73f62682","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.2.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.2.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.2.0-next.1_1636358692029_0.08383577862686753","host":"s3://npm-registry-packages"}},"1.2.0-next.2":{"name":"gatsby-recipes","version":"1.2.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.2.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"fb2fcf456d13f5ada931b82a4f63561585efa8bf","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.2.0-next.2.tgz","fileCount":152,"integrity":"sha512-A0oZF1f3sA0CMorqH+qZNDo7JTTnmfszCGDgnbcuWWM5pdyHP7ZJc92M9zU9w2zO3kLMcT6cPY9EverCa3rE5w==","signatures":[{"sig":"MEUCIQDHVnGceNidTf25iAYpC9S/rqc38wt8t/8vC3T4us1ivgIgGaoY4zi/Nmt3pgithf1luTp+Zfu8cpAFwg/ZSOyqzAI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5310243},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"3644acf228c0bea5a42f15ec3b7ff3062ba720c5","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.2.0-next.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.2.0-next.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.2.0-next.2_1636491517657_0.5768434702868726","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"gatsby-recipes","version":"1.1.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"edfc0ad3ec191f80afa99dbd2b848bb043174dd4","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.1.tgz","fileCount":152,"integrity":"sha512-MycbdV3XAr4ZkWh6RDqInAKMTI2M9VHaffThvECABCncNejU2CdAqfNr9+5jyJPDxSm9J6UFIMc8raAGj7Kwbg==","signatures":[{"sig":"MEUCIQDSDOq99CAViWYYK+fUTP7paJ9yBIO3WGG4XpOh2wGWhgIgfFMNnzoyMc6UOnKcHsWivMGwZrTqxs5xpTtMHf9PDfQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244324},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c3c69709626f647b6ab3e0d759c3961bc2f02146","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.6.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.1_1636554434758_0.5989650578309316","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"gatsby-recipes","version":"1.1.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"720f5fa547f713a24ad20b53dcf30a158e6ecad7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.2.tgz","fileCount":152,"integrity":"sha512-r6FSPM2eKH+rlC6JX0SgVYBFxBXJW5J/MwFtsP8N+C6Yvr7Cosi9OlMreMx/SBza4HYMXxIoDBYvX68qbBQrhg==","signatures":[{"sig":"MEUCIEQuVxC4xF+YelbA5BDkj7fn81scmIfTJTN9GER+kz2XAiEAq3plJaDZzsFdEiUG42r0Y6IqhrEUNveqWyuzqZKjr14=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244324},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"94503aac2bbe061d15feeb803342a2eeae8e3a08","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.6.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.2","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.2","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.2_1636643266939_0.7425003303740072","host":"s3://npm-registry-packages"}},"1.3.0-next.0":{"name":"gatsby-recipes","version":"1.3.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.3.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"539b2665c679b14177c14a52a1a09e2853656f2b","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.3.0-next.0.tgz","fileCount":152,"integrity":"sha512-1uYNFY9owj3967AHoHOQMNBls2/cF0pMpBkEssdYEs7RZjFQv9d/oR8N6PGuTO7XPwnbx/GbBMwNCqOOoG5fCw==","signatures":[{"sig":"MEUCICtcUE90AclogstVhWdYszmh/bOEo/v7opkvReB/t2lcAiEAvXOLxheuqtDAMRxQtfSSWLaQTFWx8qH3Aesibge2V1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5310585},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"f21bcd3e87c804ba77d8cc29f1ee1bd796992977","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.3.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.3.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.3.0-next.0_1636969749623_0.5323967370112115","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"gatsby-recipes","version":"1.1.3","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.1.3","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"67084498580c7bb59636fd472b896013b05a1c55","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.3.tgz","fileCount":152,"integrity":"sha512-AdO9Y7vtpa0VSWXe3gZIeIUDJ6/j/MeAkpkuJHbbU8hix9gtbVPoOcmF8VFJUMALNRzhhFsgqRN2mK6jXJlang==","signatures":[{"sig":"MEQCIH5Hix/1d6sghViVwqaTZBodOg4rWrnXBx4yYRNc0EXdAiBWZgBYO/0b7uDWZ8Lrv0iymSbAf2UvFordtPXpvKoDug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5244324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhknuSCRA9TVsSAnZWagAAT9EP/jYgMA/BFvpbCEwoHfkx\nEpJOsjAdCwqFLV/7DkrD0y1Dns3tJI5lxe5fgvkAqjK9VpBrmGDosuaydn8o\nQNzD3/bK4+v1slg6RUt/JCq9Zrszyb6sptJ5BAJNFiuvnIzzkkP22YqtMQwU\ni8fVSco34AArZdEmXo09ykxndteLn0+iVdG0dtpxHLQYZXopDru81/cowoQz\nvv5DA61bEkqoaCu7ZpUW1AV7YlpCwKqydqvPyUfdrcQrKgALKj1lWZ/7H67o\ntOKK0vagIdTbUAQ57NLSiTq56dQzB/SscaFN6jrOyEz1Nej4nQuJ3E7H/PCe\ntV68VBSpR4R1GFV+fFyAjtwOB2uJtDAeFw68KCFQhFXliAXE6Rg+BpYAIpgv\nupKBPO929r+BHYilqb7UHRatNoHZMUq5evVS6T+LyJ9rAy6BFvSS1vJy5+q/\n+FaEskv3+u46WqMMHAzUmJw3ST8ixuPBiJ1ks4ozW5L+D0kidXwYX6iOiJdD\nDXK7ex+DblphaMnITVjT/bWsZeyJ2wHW8XkjqnBI0/QXz0GHmtJZojONZESu\nzz/v4mPLzB0cGAoZeNE2BCRfst7EwDbVdSLWgRJiqLPV5hXrYck9oXDF6wnG\n85ZtQIOMa5BBwlzM/2CYgmu2HFYk/eT81t7kLl09HpQxdyR+gBE3lPFMXNSD\n+eM8\r\n=YEvP\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"87ca0dfe7590b533dfbdf4bc28068e8125b8a7fa","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.6.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.1.3","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.1.3","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.1.3_1636989842125_0.744320501109565","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"gatsby-recipes","version":"1.2.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.2.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"00e9bc8019d5003d29b3c15ee7f433acd7b2960d","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.2.0.tgz","fileCount":152,"integrity":"sha512-v76Kt1EYBHwf5c9Ic8b0w/eEaDaRh3B/6spAVU6zN+VzEvQX3Oi/VckUyS2/anBOuSnOl3PJVWhFA3/aZpGuxw==","signatures":[{"sig":"MEQCIBe+LSFF8KJhjkkHBCISLELPBprLvWeMlcyHdzYl+WJXAiB7Va+nkJd1Z18etz9MLHKqrq7cs6nQFb9hxPiL4+puQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5310564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk+IsCRA9TVsSAnZWagAAfhQP/3TSihtNu9HLSAqo6VXW\nd6t2Ysni/ecllsoeJfMdyTttkIQ6dMcInQ54wb6JYgiJ/9lh1/Gp6S5pAN1J\nBw2iDwJva4lpNjmkSw6ehCSvwsz86DR+SDsANbwEIyA1ISZNRYZhOTrzbhvT\nZXGG6uDkoj5TSrlQV8ZS+C9wEymgXVA8WM4U35mW4uZqHoxLaUibvpmFiD/m\n2z+AYOhcXLtMXWiIpVuzwmTDI5dAAEemO13ZlYkzfouN2/XEB+AnADfOr1eU\np1G+24m7/QNXqGiGFnwLbWrAwrYOThjgYPj7NSiepMk5w2RAQIA1+/T/x5C/\nG8/qv/hgvn0A3txzWbPPDhmdBtMAyJlVX2sQKpLcE1ZVgC91bvL3kGim8CTz\n95/WSr9rAKO3A7wELfWGwwHJlWBCFZ9Swmls24wp4xvMN54dTZ9MlU+ibS2G\nxottOXikl9RQPKSOOSIMk963L8Tapk6SkFbh2lPb3q/Kj/imCBdukOHR/eJ/\njWkVBVXqZdru//mmwHHrKf+PfN22sj3agk6sOmFbVl4EVSYDv6VP4EcbYNEF\nbikgHCqhpT5wMqEWjCsZV+iaRtPVFppyxzq2IMrt5UWxEofCnsZ7iphRLUdo\nzu6816qwwYhDo0X5225DJTXqaB5NEVy4sklxa84ZFLvVdYcuJNh+q5wjzCij\nhClv\r\n=rwWs\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"7ca9785a31b34ae3fcd1e1765c4851d313de3cec","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.6","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.2.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.2.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.2.0_1637081644066_0.22844441317302966","host":"s3://npm-registry-packages"}},"1.3.0-next.1":{"name":"gatsby-recipes","version":"1.3.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.3.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"vladar","email":"vladimir.razuvaev@gmail.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"7f4365cfbb85734025796e877cf4560ee8f37d6f","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.3.0-next.1.tgz","fileCount":152,"integrity":"sha512-lsfQomkEaMUz6l5lIXXGsfU8vUPNGxNP6sU7aIX3BnU/h0sFYHD3WyKWIZV4Q2M21yQz3cSQXj+GU5XVvPS6wA==","signatures":[{"sig":"MEUCIQC7/kKbpx5VvsdDpxPRTwFspyo8bCQctGhJQzBR8N/pTQIgSHnMhhucC7XRAG9N1SCbJ+/IPMrYlRNInviMXv9bHJ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5311352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm46PCRA9TVsSAnZWagAAQKMP/1Valvpuy1A54slPXVX+\nw44RTDFoIq3p9fos8ysf8HKHF44lPUZsnr1FRYfwxV6nV9e4H9Jm/506tsV9\nrZ3bXE1JrkIR6M5Fdmwxun+v6zdEhTNmc/RgRyKug+yRrGmpzZkJgp/BOXnt\ni+zFBm2PMdvQMDT/SqPdXHk9bEWBR4AQbUpguTB9m0heA9iseaSNcNC2Bw1h\nlie9AtzxNfpfqL1srmO6Km499OXQjava6VP6FpqaJIbEYT6tj6I2+R21t4AE\nhBxBjLM4eQWE00tR1ETFymr3eZvsKUHMd7Swpkoi5Qf+U0gYYyHdRvnvYf2d\nm0mChpmYmfUf49sKyvSKYUz+/m6mIXG8PsOEmtAZupTey9XrOrZl6GloaqHW\n6P9aAURYpdcfGm1VxfZY1knPFOuI2C/rbh9WPDOYxiTQwFdEPRMw4mz/fJ7r\nvGCnKnGOL6oN9HMeERT7pW6GWnq5vjY+qX7tj8Uzcy/oeemoZqCI5EhEMiB8\ng5v4LjYyvw8faPyk9dxnaaOo54OHgDQ4kXpy8pSZeEvkP/Lf1J3QYvWo2KcD\n1Pmc78YhM39qh6Ejjd251bhMMrpBN+wEas5LEg2nftJ9AHYRE50hgwyTkcbV\nPSj1oxWmTTLz/MS9+Y/1YX1MUKznLHIef8bO3kHKhUEHUoViaq0K5SUq0TQN\n3aCj\r\n=uyXc\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c1cbc0f13d0482be24e74472f81673e9bb74920d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.3.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.3.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.3.0-next.1_1637584527396_0.17043136244928525","host":"s3://npm-registry-packages"}},"1.3.0-next.2":{"name":"gatsby-recipes","version":"1.3.0-next.2","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.3.0-next.2","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"a816384ad684998ffc248cde08a59276b597e8ed","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.3.0-next.2.tgz","fileCount":152,"integrity":"sha512-WK4Ay2yCvXEjpwP8Z7nN/59jE55g06Sk6RNAivJyofprIzSlNGuVuGrAQ7MixQIz1OmPlm0cAA8hB39ezpxBIw==","signatures":[{"sig":"MEUCIQCGjs4tNL8Hj6DpFhDZzqkYOHsq+fXHrIzw2Kv8dmBV0AIgEZuQAQ2j9K71mXj83kYNJ5S5Hp3wENezt6kIkS6bQvE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5311350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhoLI0CRA9TVsSAnZWagAAD6cQAJdMVnwWST48Bd9ff7Xp\nOjrkKg/OZ682RdjA/li0Nmb27guZyhIFMkDDJ24hFMtRAYVYRG+eSuQppIsx\nHKCzS5J9BgXH8Sek0JsyKGrDF19Bth3seJVsUayDOzyVBtT0EfuiMkxU12F0\ngTK2nhhcEcoYuNZwGj/LAt6FUHr3ifTjzRHd4DNcE4ywL4YX9ogi1SjiADuR\niKZCTNkVrCfw4sMDDVsGpm0wQJe5GX1/EAvuUiOuuxcyjcn9kCKIT+M6LI55\nCWu26S3CtX31mSM+cIk8ZSjq0T4FSfWO1jB+9l2cvz+RVAhwVcBOCVA0tvA/\nmGdulIXX0JOpLD43DfgyI1V/ZgtE51ebNVnU0m738Q0yvdMc+vL9XRJP42vW\nDAe4+R1pUGlVt7iPTP/6BQY0LO0qMmQYyzGQu7vGIam0krTK1vvPRuPbgzY3\nHRy8LbbdABzwOAi9wl9w/7B7HYnFScYuFFiYKNvG3O9Shmv0wp+7DVXDPRdn\n/bddpIFOf0lNpImi1r6L0i4wj3MBUqOc4nXiKUhKPhksXsnhaIoLYH7P3nP5\n0InC0kzMGNrrobqeGQ1d7kdXXRgMHdoLtjrTXr8Z/cCbxLpGZfOwTRnZDBfA\ns4HsUlsKr2BF6UompDxrsEirXTYXLzB2GJlHx/f2+UQeWvRFyFErlzBoVivQ\nrER1\r\n=1l1X\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"70e7e74741bff082c492717d44e1765edc004f6a","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v16.13.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"16.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.3.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.3.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.3.0-next.2_1637921331961_0.30681361800740947","host":"s3://npm-registry-packages"}},"1.4.0-next.0":{"name":"gatsby-recipes","version":"1.4.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.4.0-next.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"88b6ba3e5b3771db916f41928742f32665d38ca3","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.4.0-next.0.tgz","fileCount":152,"integrity":"sha512-Oqsa+GsS25uIKpw6DMvzZ9Ud4KcQxvQbfsmJ5PVKXbtE3fUOc++lcBps4dmMehuQZn3BxvoDIepa9VIgsnHXcg==","signatures":[{"sig":"MEQCIAeDpwiAZ5DvbU0oYJC8keZNb95Rf9l7DRw1fSZe12icAiBLRKOFt4is8GdrX26vVBuBW9Mg/Ypik+X/zjrsClKfnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5311350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhph/8CRA9TVsSAnZWagAAOQ8P/iV0CTnxLzgWHQ/N53g4\nwmdcowANjTxIDOzQObgia7fsP0RU7cJF0NUMRJYNH0HIEFgR1zE1iyhFI+Re\nSbXb7iAeVSe94TOjUeu2xJr7eeh4QduPmq+V6RnFNXp/IJNiVKs8oV9XI2Uj\n6w2g/hv0sTkSLVf0uwUxcFSRD68vzksvt2WW5NQxDMTHSjyB7Z9MSXWKmh4F\nohBfjPUKfZ6WUTQiAciNZXSl1O96+gnNhK6IpJ2rcaW96IoSU5B9zXKTw2Pb\nmTX32a1N9JuV/6lrvuGsrxLoYa99Ew/ZRA2SO+HiSECtrle+BZbEYs5YU0Lm\n3lcqjp61wgJRIqIZp9Tet/1ZCiL5eoSDcwK2lGbREVp6cpZxpHxMjlubNkX8\nRFy415rZ+nPxOtQ5Tc2NQyallLF31cFDeIqDJsfhLpSCbO9BXsFXi+xFpaJi\neI5dByIUg91cTwYhoz2dd1QEHmuo5vLyV1dNf/6KR8bZbQjarILiqs0vnZJK\n/4yeXvv8oIHKjjCqM0Q0TIA/f6/JcYe8lO8cwyauroT4Vd10qb8CFpaB8bjZ\nnizuAq9VTyBLaF/9K3dAMCabTHvtY9ihKpvk25P5TEMLx1uEeoQFE6zfLUbx\nzRaKOYQoGpNpX086xCK57AGMMZ/9etxjlOzwxBph2IubSAhaxRTMEdzyKzIM\nP8JL\r\n=dESi\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"8922762d4fa971cb930f100d57d4df9426ff3a12","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.4.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.4.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.4.0-next.0_1638277116770_0.7798559700272478","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"gatsby-recipes","version":"1.3.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.3.0","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"sidharthachatterjee","email":"me@sidharthachatterjee.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"13194c6bc3fa7d070bb1f9d757304d566353bdd7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.3.0.tgz","fileCount":152,"integrity":"sha512-4+Yvkp+JFtvH1bQBt1k0PrELHga5OrGUpfFeE35TmvTUIRl0hUaSexJ3VVbTHV40MxWnzI1q39/LkKoN8oI38w==","signatures":[{"sig":"MEUCIB7TuV8PyaDrEe+8KM/Y45JL+SemMIP1RpZVRzthl3nXAiEA9KOXFRyGkAgkzRZNIXNP9kMTm9ry4T+9DfNOotxians=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5311565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhp3B6CRA9TVsSAnZWagAAE2sP/23gbPesC16quEDP+yZ5\nzmznBfaHiMu/9+MSVERU1NS/SWUH/iC1VBcGdY3rfq+z5lR95e5Og7IBeIPe\nYmNwcZNSvBvWdrCalHbm36na6FfvpRyPRJXhPVue+MepFEUH6dWI3uPGKBg1\n726cFpHvNTbkai9CmBpYo1Pr6Tb5/KEVvVIzgGEOCBJZ9ucWackrkclZxCHB\nrw0wXYxsRwmAk49zuA6ZnKF+F2wizturPQ2JUMdRVbCK8GXj16MIv0XwB6PW\ntpebOzvyYWe+p3NQ4v8URkj/fCRuqfC6qF8bHTn8nTxLRTPMGUhizNr2liMe\nawtq8cUS4JLVSJ0Fxo/HKbIH6FdMJa+qH/CuWV1RMghYvFCUB6SwxV36q47r\nEJleX+29ZtZSkBdgJqqfxMUAGg60NItY/pHWW65s0e/pq6Db6uyQi9DeDYfJ\n4MvFVXYM6PtKapT2fQRJ4+fvbcFXATvNGA68PapnleqdbWipHs1//vLlg/Hk\n89K6NjpL3KQIlOJ2FGSU3Bmk6bwm5FWrCepCkDpUAzrVwjAolq6lhfiPkde2\n0RysMmMiH8pZiLIIRbbQMD2W+GpzHvi1AY4IZnvVtymIPs5O/zNHyGfCSDkD\npYGBlQWYIFaXNfdfxJ4n0rwe7KlTwrI0qj+wu04uN0ln11XlZYfSclYlEw3T\nozU7\r\n=WYbl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"864751dd815c57f4122bc7aa12e17aac53ec3ba0","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"wardpeet","email":"ward@coding-tech.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.17.5+x64 (win32)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.17.5","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.4.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.3.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.3.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.3.0_1638363258390_0.5445527980273521","host":"s3://npm-registry-packages"}},"1.4.0-next.1":{"name":"gatsby-recipes","version":"1.4.0-next.1","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.4.0-next.1","maintainers":[{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"2557f5f96d21a7c58f5cadd6e01dfae5e0764464","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.4.0-next.1.tgz","fileCount":152,"integrity":"sha512-JwI6TcbxAzVmx3ttkYwLqaq1bBs8Y/dBHNSmGggZ5dKnAgkkdhBb+JRth9JD4434DnEfFFJUsFFlS4wEpr1LwQ==","signatures":[{"sig":"MEUCIQCjlYbhpEkmsta/RNKdperPcSg2yRQmI4nsAXKDScChWgIgST+4cvtpDngwNqpfoA3pAk3jZdA7Xkr/11MKw94aBC0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5313648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhscG6CRA9TVsSAnZWagAAkRwP/0k6Bd4BvGM0KA+DBibz\nBl2sP5evXzGUnwVt08hrd6uRBV3MSnd44geNnXWQ7iVDeJHijopKdgRr5hTB\nWTugu79IfUycQd8eFNjAC7mqdjnsGXxhadK3aOgu2b41Tf6XJ9Elt7Qz5Bq9\nbwa1FisRdMGfikzAtZNMr38fe0TLb0S5SdQsGOdVUJfCEI5STt+F4nW0Pise\nxczdAYaOC3UWvfSFpp7a1ImVfqXu8cFtsipWbbiKgL/jG0c10HAFpnbdZ9qd\nTTROYxC2g4LqcaPjqy/0BqxSMdnO6bvFzPsCGcdlVhq7YRPZM3cfOupoFl45\nVZ2e7sPhYJ/+icwbu4qeKyU5FncCGIUc0TD2vjKHsyAGEOHBW0Z+zKMeD/xD\nj2TtfYM9vnGdjmDE17Ns3j41H11+48TqdguidNWo15Immbe0ps2G9oDvCT5N\nWYn5ovi8JUj+fn/9BfqqWZE9gtwVBIg6GLgy9gT5fJ+6UfIrVVvSXdrgRotb\nbbSMgObdFlzoSMw6z5krepumRnvoKy7dx5Li4ikTLRuf2W2aYUapEWLRqACr\nxAXCb4C36/GFLpXH60ZRxJWqeqgQ4v/zn0xsA6Um18iNYuX9PFw3sZMHD6eO\nfDWzmhWnbtTj8qVs8fSfu8Ymi23Wm6es+Dz5hFacrZ0YRuaalRppVPdxlXXZ\nKCS5\r\n=1q3g\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"6b28b69d8383ccdb951c81283a77e19d2f14ddb9","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v16.13.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"16.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.5.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.4.0-next.1","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.4.0-next.1","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.4.0-next.1_1639039418493_0.9851865818077967","host":"s3://npm-registry-packages"}},"1.5.0-next.0":{"name":"gatsby-recipes","version":"1.5.0-next.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.5.0-next.0","maintainers":[{"name":"kgarbaya","email":"kgarbaya@gmail.com"},{"name":"marvinjudehk","email":"marvinjudehk@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"924e46823cfc5bc6cdf3c57dcda000278f018027","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.5.0-next.0.tgz","fileCount":152,"integrity":"sha512-fnjh1V5rIbWsjNOQ0z1KlAQ5ogNMBzDO7HU0tXUIe5eNnG0JLlgX3ACu0m9VsAdOp/YNzBtaixuQxhzr9pMPIQ==","signatures":[{"sig":"MEQCIB0Qa+gAojcRNsxzKij5ljqLXwGGULJv5UkyKoaLSd1zAiAk19/0WsDl1y9BCCdSc6eckVmUbe/JLDIUAnHGM1vwFA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5313648,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsgK5CRA9TVsSAnZWagAAMA0P+QFkN/3u6IQEm4Ff/EZ3\nVO4GNhgScw91s1Zw7KkSMdWkCH2oamkXbysYvKSJ+CucYqo/h9xm6pR0V9OI\nRiZs7Bo3+M9Fad081o68OvjoS9/UgRTh2otyb5uWtdOocbjJD9GB9gpgPuMH\nsN1s625g9Y46ywo9TrCtaISvEmcFNyVlQun8vK36tWhNYZZJ7Vl0Hz73xDrt\n13oYXmogPpDUhZw1rzzTk4cJerarqj8A6cTnLH8prXBEILTxDtLp0sO8b4xc\nb/cXPkuY92famoYKVwbEkSb4lpZxHAMJ7rFrAXL6Y0OvMnn9i3Z9Kq93SM6J\nf97ZM2kwPrCT1fYEKUyUXi5gopIx39b7r7BhPIwrDtNhxwJeQmBO0YtoIjio\nHusRxrJIpx7zdjUQH3RsgqmAjeEVkaKxgH7yDh86PL4VEpgN9rkq5CYn95Vg\nQHsbXsWp/SO+oDw0T7a1XiNzBPBo7iLav6GtYZEfjSEWNogRyaQ0puzFFBVY\nhFjDWqzMv99Fsm/fLGecDBRWtVCqRpDD30jdJuVCPXM6SuSLYMJBoD7tCvMG\nkXllT1rb2NShYfb4Y28d5YspiqQQoD3zTLRQmqqwCox5xp0DUnHwJBHeBp66\nK84u5mTiybUs5233MyzPMP8E8ZWioVOJRFRncb4DooHd32cMYCN6cL1Te6kw\nxOeT\r\n=fHi/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"fb530ecccd45037b664525c5a7d18ea13f64a540","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"marvinjudehk","email":"marvinjudehk@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v17.2.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"17.2.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.5.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.5.0-next.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.5.0-next.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.5.0-next.0_1639056057393_0.6657426181112345","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"gatsby-recipes","version":"1.4.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@1.4.0","maintainers":[{"name":"kgarbaya","email":"kgarbaya@gmail.com"},{"name":"marvinjudehk","email":"marvinjudehk@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"veryspry","email":"ehlinger.matt@gmail.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"f10409b4b37c81c023a807c351223fb3f04fa2f8","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.4.0.tgz","fileCount":152,"integrity":"sha512-4KJIKe4nInKBX8uYieC1Jt1+VJz4RadGJeMJPx0JckF8/UbXETwLTOhQQZ8bqDBQaanXqDfATdp4D/a1O9C2DA==","signatures":[{"sig":"MEUCIAx9R2hJZDti8MRIjoso8JbVA2/EN2qX6vqBMbUhyn2zAiEAjL8VcxR6k5ccFdj3+L4CEfI99L4SxFXXaPyhD+7KjZw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5313627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuJ59CRA9TVsSAnZWagAASlsP/2JPMZIXxO30dE9wXgy8\nhHBZQatROPIto8BtaEEjI/+uR/lNV5O7X4R6eIO+WkJEI3gpusMsLIePQGOr\nh7pQbd/klKDQlNn1LV/v9ftFifw+9I1q2nj633IobaxP0paFtyF+TFOk/Oqu\nTv3myvp3DB+tC1MJj1Y8khHV/pzXXwB157203qr/m7DEtLbrRUVSfiFM/YO/\nRdN0ekj/OAuMae0+vtYDo6GbXyuPLViz3I4VnWz6svx2fr3bZoZPrtXXYMNL\nVbXQ5f9ha0OHvG83RT85Opw09UIoyy7NA6CFn0UySD6x3/UbAX4g/C5pLgrk\nhSC4tqvm3uXdc9LMxh17G5JcvPE9XywHtHX4Y5vu4QB0ENhf3JenNQ55QGAb\nZQ+sl15QoCcqRkMegtIaV7gzXn646DZJgLPWzdyYSBxUmOaG8NO9YEdzS4ZJ\nSf6+uzxr+BNEFayxZp2RhMBbfDhq/j8uVdJ8GtsELVMGtYhTtXegujhqISIN\nTIcVEzaLGZ6NHaLDV3qWAgtatda0mhzWhiJpx1DCfm64Jgln9e/OPIGiWlfH\nnoZyzv7X+ZNBKdLOVyxmfIk3GBrNOBQYL2Dcd92usiI6StpDk/oXIG6MSOX5\nkyfqFeureGt46+d3CbyrmByrSzrgepGrWgjQzo6Oa8fPoVlYiQYl5KaNGKZL\no5k0\r\n=Y2R5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","gitHead":"c09587abec36640b8d236455bc28bd430c7e112e","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"lekoarts","email":"lekoarts@gmail.com"},"deprecated":"gatsby-recipes has been removed from gatsby/gatsby-cli >=4.5.0. Update to gatsby@latest/gatsby-cli@latest to use versions without gatsby-recipes. This package will no longer receive updates.","repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v16.13.0+arm64 (darwin)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.7.2","remark-mdx":"2.0.0-next.7","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"16.13.0","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.5.1","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"2.0.0-next.7","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^3.4.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^3.4.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_1.4.0_1639489149667_0.25424370428966436","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"gatsby-recipes","version":"0.26.0","keywords":["gatsby","gatsby-recipes","mdx"],"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","_id":"gatsby-recipes@0.26.0","maintainers":[{"name":"kathmbeck","email":"katherine.beck@gatsbyjs.com"},{"name":"j0sh77","email":"jcjohnson77@gmail.com"},{"name":"tyhopp","email":"hopp.ty.c@gmail.com"},{"name":"kgarbaya","email":"kgarbaya@gmail.com"},{"name":"marvinjudehk","email":"marvinjudehk@gmail.com"},{"name":"dschau","email":"dustinschau@gmail.com"},{"name":"kylemathews","email":"mathews.kyle@gmail.com"},{"name":"pieh","email":"misiek.piechowiak@gmail.com"},{"name":"wardpeet","email":"ward@coding-tech.com"},{"name":"tylerbarnes","email":"tyler@known.design"},{"name":"fk","email":"sechskilo@gmail.com"},{"name":"smthomas","email":"shane@codekarate.com"},{"name":"lekoarts","email":"lekoarts@gmail.com"},{"name":"rachelbahl","email":"rachel@gatsbyjs.com"},{"name":"daniellewgatsby","email":"daniel.lew@gatsbyjs.com"},{"name":"abhiaiyer","email":"abhiaiyer91+npm@gmail.com"},{"name":"johno","email":"johnotander@gmail.com"}],"homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"dist":{"shasum":"b7f2b13412fdd21f610ff20179be08466d40eef7","tarball":"https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.26.0.tgz","fileCount":152,"integrity":"sha512-pE+h2qZkGzn5KP2fMDMbwiqoo3mYQDYTcQYp0UuX5nNUVQ6xN0XlZSnfwxTQZYrS5PAlJ8n9quZ/DS9Yqa4ySg==","signatures":[{"sig":"MEUCIAgYPHqXakpGFXqcwXtNfJSXOgrspwtt4rl3Dcg6+7FDAiEAttudI/uOrzAYV0y7I03j17lsEWU613wey1hBiL564JU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5239722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjkH5nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaMQ//Y2VK3YBkhyQYBwzTK2YAzJVPNJGLSycObxJjWs/KVE76H0bQ\r\niyXiLob63cVkjN/+YTh6eJXiPhkC1EZtFZbUpLC/Sh647vGDvtdUnX+tbhss\r\nvWzKNUgFwIq14J54uoFqTn3sqrc4o+wHDiRTT5rLqnsVbYfzURvf5X+oIu8I\r\nIm4P3r91SoIm5DGYUqVnGvCH2484pXPyHy973dq6P9yhdpMSD/LqwN6cRHTu\r\npw0bL7hDdWn9m1EVNloDLsXtxU1puA5oLKU+NT/mGmZZ96x0d0tUQ/N7lZrW\r\nDZ4eKpc3vJVdP73BROb2G+f5U1pI4WVX8247wJEMR5OmUBqwmbyb9UlajVja\r\nU8vLtU6lxP53/i2syjoQs6Jjm3kDfqDe4qDFe66SaOuX6vlNh56H+gj1ODmW\r\nsd7uIbtzNOQ7HISTDywOKDsAAGdscSLdIvpXO5GrSaUzOP8yI46TpD79zz0i\r\nl0T7CQqz8kQwMDULaEsDGw+6C5kkJ8VJ2K5TuBOibdd9j/gl3n8fwTv7z4kn\r\nm2Zho/E6xH9DVwbu44QUJPkmVAdWpqTaBS5Lh6M0+SUO9DzScFwPKI0k9faz\r\n4yUEtesHYpW9XG5toUdamb7lvB5rAv4WQqvegGz76w2p65EbL6YRh1CUp0Zq\r\ndr+7GIoNseLRn3KFLC7ohoqd0AFI/KSWyr4=\r\n=Kvcn\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node","testPathIgnorePatterns":["/.cache/","dist"]},"main":"dist/index.js","readme":"# Gatsby Recipes\n\nRecipes is an “infrastructure as code” system that lets users automatically manage and provision the technology stack for their Gatsby site/app through code rather than manual processes.\n\nIt’s powered by React & MDX and a useful analogy is “React Native for Infrastructure”.\n\nRecipes also provides a read/write API for Desktop/Admin to build lowcode tooling on top of Gatsby & integrated services.\n\nIt's designed to be extensible so new capabilities can be added which allow\nRecipes to automate more things.\n\nWe chose [MDX](https://mdxjs.com/) to allow for a literate programming style of writing recipes which\nenables us to port our dozens of recipes from\nhttps://www.gatsbyjs.org/docs/recipes/ as well as in the future, entire\ntutorials.\n\n[Read more about Recipes on the launch blog post](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/)\n\nThere's an umbrella issue for testing / using Recipes during its incubation stage.\nFollow the issue for updates! https://github.com/gatsbyjs/gatsby/issues/22991\n\n## Get set up for running Recipes\n\nRecipes is a new rapidly developing feature. To use it, upgrade your global gatsby-cli package to the latest.\n\n```shell\nnpm install -g gatsby-cli@latest\n```\n\nTo confirm that this worked, run `gatsby --help` in your terminal. The output should show the recipes command.\n\n### Running an example recipe\n\nNow you can test out recipes! Start with a recipe for installing [Emotion](https://emotion.sh/docs/introduction) by following these steps:\n\n1. Create a new Hello World Gatsby site:\n\n```shell\ngatsby new try-emotion https://github.com/gatsbyjs/gatsby-starter-hello-world\n```\n\n1. Go to the project directory you created:\n\n```shell\ncd try-emotion\n```\n\n1. Now you can run the `emotion` recipe with this command:\n\n```shell\ngatsby recipes emotion\n```\n\n![Terminal showing \"gatsby recipes emotion\" output](https://user-images.githubusercontent.com/1424573/79452177-f3362f00-7fa4-11ea-903a-e28472bf95b6.png)\n\nYou can see a list of other recipes to run by running `gatsby recipes`\n\n![Terminal showing recipes list](https://user-images.githubusercontent.com/1424573/79452254-14971b00-7fa5-11ea-9bdf-021c341afb10.png)\n\n## Developing Recipes\n\n### An example MDX recipe\n\nHere's how you would write the `gatsby recipes emotion` recipe you just ran:\n\n```mdx\n# Setup Gatsby with Emotion\n\n[Emotion](https://emotion.sh/) is a powerful CSS-in-JS library that supports both inline CSS styles and styled components. You can use each styling feature individually or together in the same file.\n\n<!-- use three dashes to separate steps of the recipe -->\n\n---\n\nInstall necessary NPM packages\n\n<!-- refer to the API in this doc to see what APIs are available, like `NPMPackage` -->\n\n<NPMPackage name=\"gatsby-plugin-emotion\" />\n<NPMPackage name=\"@emotion/react\" />\n<NPMPackage name=\"@emotion/styled\" />\n\n---\n\nInstall the Emotion plugin in gatsby-config.js\n\n<GatsbyPlugin name=\"gatsby-plugin-emotion\" />\n\n---\n\nSweet, now it's ready to go.\n\nLet's also write out an example page you can use to play\nwith Emotion.\n\n<File\n  path=\"src/pages/emotion-example.js\"\n  content=\"https://gist.githubusercontent.com/KyleAMathews/323bacd551df46e8e7b6146cbf827d0b/raw/5c60f168f30c505cff1ff2433e69dabe27ae9738/sample-emotion.js\"\n/>\n\n---\n\nRead more about Emotion on the official Emotion docs site:\n\nhttps://emotion.sh/docs/introduction\n```\n\nYou can browse the [source of the official recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes). The [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991) also has a number of recipes posted by community members.\n\n### How to run recipes\n\nYou can run built-in recipes, ones you write locally, and ones people have posted online.\n\nTo run a local recipe, make sure to start the path to the recipe with a period like:\n\n```shell\ngatsby recipes ./my-cool-recipe.mdx\n```\n\nTo run a remote recipe, copy the path to the recipe and run it e.g.\n\n```shell\ngatsby recipes https://example.com/sweet-recipe.mdx\n```\n\n## External learning resources\n\n- A free 6 min eggheadio [collection](https://egghead.io/playlists/getting-started-with-gatsbyjs-recipes-c79a) by [Khaled Garbaya](https://twitter.com/khaled_garbaya)\n\n## Recipe API\n\n### `<GatsbyPlugin>`\n\nInstalls a Gatsby Plugin in the site's `gatsby-config.js`.\n\n```jsx\n<GatsbyPlugin\n  name=\"gatsby-source-filesystem\"\n  key=\"src/pages\"\n  options={{\n    name: `src pages directory`,\n    path: `src/pages`,\n  }}\n/>\n```\n\n#### props\n\n- **name**: name of the plugin\n- **options**: object with options to be added to the plugin declaration in `gatsby-config.js`. JavaScript code is not _yet_ supported in options e.g. `process.env.API_TOKEN`. This is being worked on. For now only simple values like strings and numbers are supported.\n- **key**: string used to distinguish between multiple plugin instances\n- **isLocal**: boolean that indicates this is a local plugin. This lets\n  recipes know it shouldn't require an NPMPackage with the plugin name\n  to be installed as well.\n\n### `<GatsbyShadowFile>`\n\n```jsx\n<GatsbyShadowFile theme=\"gatsby-theme-blog\" path=\"src/components/seo.js\" />\n```\n\n#### props\n\n- **theme**: the name of the theme (or plugin) which provides the file you'd like to shadow\n- **path**: the path to the file within the theme. E.g. the example file above lives at `node_modules/gatsby-theme-blog/src/components/seo.js`\n\n### `<NPMPackage>`\n\n```jsx\n<NPMPackage name=\"lodash\" version=\"latest\" />\n```\n\n#### props\n\n- **name**: name of the package to install\n- **version**: defaults to latest\n- **dependencyType**: defaults to `production`. Other options include `development`\n\n### `<NPMPackageJson>`\n\n<!-- prettier-ignore-start -->\n```jsx\n<NPMPackageJson\n  name=\"lint-staged\"\n  value={{\n     \"src/**/*.js\": [\n      \"jest --findRelatedTests\"\n    ],\n  }}\n/>\n```\n<!-- prettier-ignore-end -->\n\n#### props\n\n- **name**: name of the property to add to the package.json\n- **value**: the value assigned to the property. can be an object or a string.\n\n### `<NPMScript>`\n\n```jsx\n<NPMScript name=\"test\" command=\"jest\" />\n```\n\n#### props\n\n- **name**: name of the command\n- **command**: the command that's run when the script is called\n\n### `<File>`\n\n```jsx\n<File\n  path=\"test.md\"\n  content=\"https://raw.githubusercontent.com/KyleAMathews/test-recipes/master/gatsby-recipe-jest.mdx\"\n/>\n```\n\n#### props\n\n- **path**: path to the file that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n- **content**: URL to the content that should be written to the path. Eventually we'll support directly putting content here after some fixes to MDX.\n\n> Note that this content is stored in a [GitHub gist](https://gist.github.com/). When linking to a gist you'll want to click on the \"Raw\" button and copy the URL from that page.\n\n### `<Directory>`\n\n```jsx\n<Directory path=\"test\" />\n```\n\n#### props\n\n- **path**: path to the directory that should be created. The path is local to the root of the Node.js project (where the `package.json` is)\n\n## How to set up your development environment to work on Gatsby Recipes core\n\nThe Gatsby recipes codebase consists of the core framework, code for each resource, and the MDX source.\n\n### Official recipes\n\nMDX source for the official recipes lives at [https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes/recipes).\n\nWe welcome PRs for new recipes and fixes/improvements to existing recipes.\n\nWhen you add a new recipe, please also add it to the recipes list at [https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60](https://github.com/gatsbyjs/gatsby/blob/05151c006974b7636b00f0cd608fac89ddaa1c08/packages/gatsby-recipes/src/cli.js#L60).\n\n## FAQ / common issues\n\n### Q) My recipe is combining steps instead of running them separately!\n\nWe use the `---` break syntax from Markdown to separate steps.\n\nOne quirk with it is for it to work, it must have an empty line above it.\n\nSo this will work:\n\n```mdx\n# Recipes\n\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n\nBut this won't\n\n<!-- prettier-ignore-start -->\n```mdx\n# Recipes\n---\n\na step\n\n<File src=\"something.txt\" content=\"something\" />\n```\n<!-- prettier-ignore-end -->\n\n### Q) What kind of recipe should I write?\n\nIf you’d like to write a recipe, there are a few great places to get an idea:\n\n- Think of a task that took you more time than other tasks in the last Gatsby site you built. Is there a way to automate any part of that task?\n- Look at this list of recipes in the Gatsby docs. Many of these can be partially or fully automated through creating a recipe `mdx` file. https://www.gatsbyjs.org/docs/recipes/\n- community members have posted a number of recipes in the [recipes umbrella issue](https://github.com/gatsbyjs/gatsby/issues/22991). You can browse their ideas to find inspiration for new recipes to write.\n","gitHead":"c1e67a23e298811afa9273a9698af17aec74589d","scripts":{"test":"jest","build":"rollup -c","watch":"rollup -c -w","prepare":"npm run build","prebuild":"rimraf dist","prewatch":"rimraf dist","test:watch":"jest --watch"},"_npmUser":{"name":"pieh","email":"misiek.piechowiak@gmail.com"},"repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","description":"Core functionality for Gatsby Recipes","directories":{},"resolutions":{"graphql":"^15.5.1","remark-mdx":"^2.0.0-next.4","@mdx-js/mdx":"^2.0.0-next.4","remark-mdxjs":"^2.0.0-next.4","@mdx-js/react":"^2.0.0-next.4","@mdx-js/runtime":"^2.0.0-next.4","property-information":"5.6.0"},"_nodeVersion":"14.18.1","dependencies":{"ws":"^7.3.0","cors":"^2.8.5","glob":"^7.1.6","lock":"^1.0.0","mitt":"^1.2.0","uuid":"3.4.0","debug":"^4.3.1","execa":"^5.1.1","hicat":"^0.8.0","dotenv":"^8.2.0","is-url":"^1.2.4","lodash":"^4.17.21","mkdirp":"^0.5.1","semver":"^7.3.5","xstate":"^4.9.1","express":"^4.17.1","graphql":"^15.4.0","pkg-dir":"^4.2.0","unified":"^8.4.2","chokidar":"^3.5.2","fs-extra":"^10.0.0","prettier":"^2.3.2","@hapi/joi":"^15.1.1","jest-diff":"^25.5.0","@hapi/hoek":"8.x.x","node-fetch":"^2.5.0","prop-types":"^15.6.1","remark-mdx":"^2.0.0-next.4","strip-ansi":"^6.0.0","@babel/core":"^7.15.5","detect-port":"^1.3.0","@babel/types":"^7.15.4","better-queue":"^3.8.10","remark-mdxjs":"^2.0.0-next.4","remark-parse":"^6.0.3","resolve-from":"^5.0.0","@babel/runtime":"^7.15.4","is-binary-path":"^2.1.0","@babel/template":"^7.15.4","express-graphql":"^0.12.0","graphql-compose":"~7.25.0","style-to-object":"^0.3.0","@babel/generator":"^7.15.4","gatsby-telemetry":"^2.15.0","remark-stringify":"^8.1.0","unist-util-visit":"^2.0.2","@babel/standalone":"^7.15.5","gatsby-core-utils":"^2.15.0","graphql-type-json":"^0.3.2","unist-util-remove":"^2.0.0","@graphql-tools/utils":"^7.0.2","yoga-layout-prebuilt":"^1.9.6","@graphql-tools/schema":"^7.0.0","contentful-management":"^7.5.1","graphql-subscriptions":"^1.1.0","single-trailing-newline":"^1.0.0","@babel/helper-plugin-utils":"^7.14.0","@babel/plugin-transform-react-jsx":"^7.14.9","@babel/plugin-proposal-optional-chaining":"^7.14.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ink":"^3.0.8","urql":"^1.9.7","react":"^16.12.0","rimraf":"^3.0.2","rollup":"^2.34.2","@babel/cli":"^7.15.4","@mdx-js/mdx":"^2.0.0-next.4","ink-spinner":"^4.0.1","tmp-promise":"^2.1.0","@mdx-js/react":"^2.0.0-next.4","terminal-link":"^2.0.0","@mdx-js/runtime":"^2.0.0-next.4","fetch-mock-jest":"^1.3.0","ink-select-input":"^4.2.0","react-reconciler":"^0.25.1","@rollup/plugin-json":"^4.1.0","@rollup/plugin-babel":"^5.1.0","@rollup/plugin-replace":"^2.3.3","rollup-plugin-internal":"^1.0.0","@rollup/plugin-commonjs":"^17.0.0","subscriptions-transport-ws":"^0.9.16","@rollup/plugin-node-resolve":"^8.4.0","rollup-plugin-auto-external":"^2.0.0","@babel/plugin-transform-runtime":"^7.15.0"},"_npmOperationalInternal":{"tmp":"tmp/gatsby-recipes_0.26.0_1670413927554_0.014805663112509082","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-04-14T02:22:17.722Z","modified":"2025-06-17T19:38:01.864Z","0.0.1":"2020-04-14T02:22:17.914Z","0.0.2":"2020-04-14T02:22:39.883Z","0.0.4-recipes.14666":"2020-04-14T19:14:40.355Z","0.0.3":"2020-04-15T04:28:57.798Z","0.0.4":"2020-04-15T04:29:03.762Z","0.0.5-recipes.14780":"2020-04-15T21:02:55.002Z","0.0.6-recipes.14790":"2020-04-16T02:28:25.847Z","0.0.6-recipes.14791":"2020-04-16T02:29:57.722Z","0.0.6":"2020-04-16T15:37:51.343Z","0.0.7":"2020-04-17T14:05:05.688Z","0.0.8":"2020-04-18T16:04:35.063Z","0.0.9":"2020-04-20T07:30:35.079Z","0.0.10":"2020-04-20T18:19:54.640Z","0.0.11":"2020-04-21T11:18:17.438Z","0.0.12":"2020-04-22T06:52:15.972Z","0.0.13":"2020-04-24T09:04:04.707Z","0.0.14":"2020-04-24T10:38:54.366Z","0.0.15":"2020-04-24T20:05:24.883Z","0.0.16":"2020-04-24T22:00:18.970Z","0.0.17":"2020-04-25T02:45:11.718Z","0.0.18":"2020-04-25T03:09:19.921Z","0.0.19":"2020-04-25T18:57:39.099Z","0.1.0":"2020-04-27T12:10:20.669Z","0.1.1":"2020-04-28T10:34:46.846Z","0.1.4":"2020-04-29T15:04:40.239Z","0.1.5":"2020-04-29T15:38:55.962Z","0.1.6":"2020-04-29T18:22:34.219Z","0.1.7":"2020-05-01T12:01:49.398Z","0.1.8":"2020-05-01T15:40:37.790Z","0.1.9":"2020-05-04T07:17:45.518Z","0.1.10-state-machine.15022":"2020-05-04T08:47:40.270Z","0.1.10":"2020-05-05T09:44:06.389Z","0.1.11":"2020-05-06T09:33:47.526Z","0.1.12-state-machine.15106":"2020-05-06T17:00:32.607Z","0.1.12":"2020-05-07T17:24:51.919Z","0.1.13":"2020-05-08T09:44:35.721Z","0.1.14":"2020-05-08T15:41:05.443Z","0.1.15":"2020-05-11T10:55:14.493Z","0.1.16":"2020-05-13T07:58:18.892Z","0.1.17":"2020-05-13T13:10:45.802Z","0.1.18":"2020-05-13T21:58:24.215Z","0.1.19":"2020-05-14T03:25:27.988Z","0.1.20-prompt-restart.15275":"2020-05-15T12:31:31.532Z","0.1.20-prompt-restart.15279":"2020-05-15T13:01:28.557Z","0.1.20-prompt-restart.15280":"2020-05-15T13:16:04.475Z","0.1.20":"2020-05-18T14:28:24.499Z","0.1.21":"2020-05-18T19:39:20.182Z","0.1.22-prompt-restart.15347":"2020-05-19T08:19:58.736Z","0.1.22":"2020-05-19T15:16:00.955Z","0.1.23":"2020-05-20T07:40:35.602Z","0.1.24":"2020-05-20T08:18:09.435Z","0.1.25":"2020-05-21T23:09:19.139Z","0.1.26":"2020-05-22T06:45:37.289Z","0.1.27":"2020-05-22T07:35:42.663Z","0.1.28":"2020-05-22T10:14:38.183Z","0.1.29":"2020-05-25T18:42:12.715Z","0.1.30":"2020-05-26T15:16:02.037Z","0.1.31":"2020-05-28T15:17:08.906Z","0.1.32":"2020-05-30T10:16:22.520Z","0.1.33":"2020-05-31T02:24:06.272Z","0.1.34":"2020-05-31T03:03:10.268Z","0.1.35":"2020-06-02T10:40:26.153Z","0.1.36":"2020-06-02T12:26:51.932Z","0.1.37":"2020-06-03T11:50:22.378Z","0.1.38":"2020-06-05T11:12:09.860Z","0.1.39":"2020-06-09T09:31:17.428Z","0.1.40":"2020-06-17T15:10:46.650Z","0.1.41":"2020-06-19T13:53:06.698Z","0.1.42":"2020-06-22T16:04:29.468Z","0.1.43":"2020-06-24T06:09:49.055Z","0.0.7-unifiedroutes.76":"2020-06-25T20:01:18.340Z","0.1.44":"2020-06-29T18:48:20.242Z","0.1.46":"2020-07-01T15:46:24.682Z","0.1.47":"2020-07-02T15:21:27.799Z","0.1.48":"2020-07-02T20:28:35.278Z","0.1.49":"2020-07-03T10:38:44.199Z","0.1.50":"2020-07-07T09:17:14.132Z","0.1.51":"2020-07-09T08:36:22.514Z","0.1.52":"2020-07-15T18:07:55.575Z","0.1.53-telemetry-test.16127":"2020-07-20T09:45:47.143Z","0.1.53":"2020-07-20T09:53:07.803Z","0.1.53-telemetry-test.16128":"2020-07-20T10:01:11.769Z","0.1.53-telemetry-test.16129":"2020-07-20T11:24:59.365Z","0.1.53-telemetry-test.16131":"2020-07-20T12:00:34.024Z","0.1.54-telemetry-test.17":"2020-07-20T13:16:03.950Z","0.1.54-telemetry-test.18":"2020-07-20T15:30:14.348Z","0.1.54-telemetry-test.19":"2020-07-20T16:45:00.134Z","0.1.54-telemetry-test.20":"2020-07-20T16:53:38.185Z","0.1.54-telemetry-test.30":"2020-07-21T10:09:16.915Z","0.1.54-telemetry-test.31":"2020-07-21T10:20:27.153Z","0.1.54-telemetry-test.35":"2020-07-21T11:22:00.040Z","0.1.54-telemetry-test.36":"2020-07-21T11:28:55.297Z","0.1.54-telemetry-test.37":"2020-07-21T11:33:41.107Z","0.1.54-telemetry-test.38":"2020-07-21T11:41:35.203Z","0.1.54-telemetry-test.39":"2020-07-21T11:47:01.341Z","0.1.54-telemetry-test.40":"2020-07-21T11:52:02.610Z","0.1.54-telemetry-test.41":"2020-07-21T12:00:05.981Z","0.1.54-telemetry-testt.31":"2020-07-21T12:14:26.191Z","0.1.54-telemetry-testt.32":"2020-07-21T12:51:09.685Z","0.1.54-telemetry-testt.34":"2020-07-21T13:02:27.966Z","0.1.54-telemetry-testt.30":"2020-07-21T13:08:45.807Z","0.1.54":"2020-07-21T15:30:50.891Z","0.1.55":"2020-07-22T08:54:22.005Z","0.1.54-telemetry-testt.58":"2020-07-22T12:13:30.844Z","0.1.54-telemetry-testt.60":"2020-07-22T12:34:52.025Z","0.1.54-telemetry-testt.61":"2020-07-22T12:46:23.160Z","0.1.54-telemetry-testt.63":"2020-07-22T14:35:42.628Z","0.1.54-telemetry-testt.64":"2020-07-22T14:46:48.909Z","0.1.54-telemetry-testt.65":"2020-07-22T15:01:50.979Z","0.1.54-telemetry-testt.66":"2020-07-22T15:14:43.609Z","0.1.54-telemetry-testt.67":"2020-07-22T15:24:12.881Z","0.1.54-telemetry-testt.59":"2020-07-22T15:47:32.837Z","0.1.54-telemetry-test.59":"2020-07-22T16:38:23.968Z","0.1.56-telemetry-test.16":"2020-07-23T11:29:42.336Z","0.1.32-recipes-renderer.56":"2020-07-23T22:56:14.198Z","0.1.32-recipes-renderer.57":"2020-07-24T00:27:27.719Z","0.1.32-recipes-renderer.58":"2020-07-24T00:47:32.366Z","0.1.32-recipes-renderer.59":"2020-07-24T01:04:47.039Z","0.1.32-recipes-renderer.60":"2020-07-24T01:10:42.077Z","0.1.32-recipes-renderer.61":"2020-07-24T01:23:33.668Z","0.1.56":"2020-07-24T09:24:04.553Z","0.1.32-recipes-renderer.62":"2020-07-24T22:13:35.550Z","0.1.32-recipes-renderer.63":"2020-07-24T22:25:11.758Z","0.1.32-recipes-renderer.64":"2020-07-24T22:29:38.084Z","0.1.32-recipes-renderer.65":"2020-07-24T22:45:57.449Z","0.1.32-recipes-renderer.70":"2020-07-28T00:44:02.793Z","0.1.57":"2020-07-28T11:13:52.335Z","0.1.32-recipes-renderer.72":"2020-07-28T22:35:24.793Z","0.1.32-recipes-renderer.73":"2020-07-28T22:44:33.885Z","0.1.32-recipes-renderer.74":"2020-07-28T23:09:23.918Z","0.1.32-recipes-renderer.75":"2020-07-28T23:42:02.697Z","0.1.58":"2020-07-30T15:06:49.031Z","0.0.7-unifiedroutes-v2.135":"2020-07-31T20:59:37.959Z","0.1.59":"2020-08-03T12:19:36.215Z","0.2.0":"2020-08-03T21:16:41.812Z","0.2.1":"2020-08-03T22:16:15.692Z","0.2.2":"2020-08-04T16:35:11.496Z","0.2.3":"2020-08-05T14:35:32.763Z","0.2.4":"2020-08-05T18:04:08.077Z","0.2.5":"2020-08-05T23:25:29.404Z","0.2.6":"2020-08-06T00:49:57.976Z","0.2.7":"2020-08-06T08:21:34.291Z","0.1.58-telemetry-test.100":"2020-08-06T12:54:33.832Z","0.1.58-telemetry-test.106":"2020-08-06T14:23:05.061Z","0.1.58-telemetry-test.103":"2020-08-06T15:40:23.930Z","0.2.8":"2020-08-06T23:24:57.298Z","0.2.9":"2020-08-07T16:27:53.619Z","0.2.10":"2020-08-08T15:19:28.450Z","0.2.11":"2020-08-10T20:05:41.294Z","0.2.12":"2020-08-10T22:04:19.416Z","0.2.13":"2020-08-11T16:30:53.423Z","0.2.14":"2020-08-12T10:14:10.568Z","0.2.15":"2020-08-12T16:15:49.166Z","0.2.16":"2020-08-12T17:41:18.321Z","0.2.17-incbuild-collections.5":"2020-08-21T02:54:32.167Z","0.2.17":"2020-08-24T08:54:54.910Z","0.2.18":"2020-08-26T14:12:15.472Z","0.2.19":"2020-08-28T14:08:01.753Z","0.2.20":"2020-08-31T12:00:08.740Z","0.2.21":"2020-09-07T09:57:07.300Z","0.2.22":"2020-09-08T16:28:23.624Z","0.2.23":"2020-09-09T14:09:11.751Z","0.2.24":"2020-09-10T11:03:37.716Z","0.2.25":"2020-09-14T13:17:46.382Z","0.2.26":"2020-09-15T07:10:19.281Z","0.2.27":"2020-09-16T11:12:50.349Z","0.2.28":"2020-09-23T10:53:42.253Z","0.2.28-ink-compiled.46":"2020-09-24T14:26:08.663Z","0.2.29-ink-compiled.32":"2020-09-25T18:37:58.869Z","0.2.29":"2020-09-28T13:12:19.165Z","0.2.28-telemetry-test.127":"2020-09-30T09:13:27.792Z","0.2.28-telemetry-testt.127":"2020-09-30T10:08:41.329Z","0.2.28-telemetry-testt.129":"2020-09-30T11:05:55.894Z","0.2.30":"2020-10-01T09:02:02.574Z","0.2.31-ink-compiled.12":"2020-10-05T09:29:19.559Z","0.2.31":"2020-10-06T08:02:31.867Z","0.2.32":"2020-10-19T12:31:06.455Z","0.2.18-dev-ssr-2.60":"2020-10-19T17:44:05.025Z","0.2.33":"2020-10-20T12:39:49.690Z","0.2.34-ink-compiled.24":"2020-10-23T11:57:06.311Z","0.2.34":"2020-10-26T14:51:39.449Z","0.2.35":"2020-11-02T08:46:07.700Z","0.2.36":"2020-11-02T20:05:20.434Z","0.3.0-next.0":"2020-11-03T16:47:17.366Z","0.2.35-create-gatsby.45":"2020-11-03T23:29:39.618Z","0.2.35-create-gatsby.46":"2020-11-03T23:41:31.530Z","0.2.37":"2020-11-04T11:42:06.335Z","0.2.28-telemetry-testt.423":"2020-11-04T12:42:15.503Z","0.2.28-telemetry-testt.426":"2020-11-04T13:07:22.700Z","0.2.28-telemetry-testt.424":"2020-11-04T13:39:40.353Z","0.2.38":"2020-11-05T19:02:38.330Z","0.3.0-next.1":"2020-11-05T20:12:16.492Z","0.2.35-create-gatsby.81":"2020-11-07T06:44:15.351Z","0.2.35-create-gatsby.82":"2020-11-09T09:35:01.467Z","0.3.0-next.2":"2020-11-09T10:01:17.845Z","0.3.0-next.3":"2020-11-10T16:45:53.706Z","0.4.0-next.0":"2020-11-10T17:43:15.370Z","0.2.35-create-gatsby.101":"2020-11-12T13:14:18.706Z","0.2.35-create-gatsby.102":"2020-11-12T13:36:47.982Z","0.2.35-create-gatsby.104":"2020-11-12T15:31:30.340Z","0.3.0":"2020-11-12T17:13:47.769Z","0.3.1":"2020-11-13T17:32:26.072Z","0.2.28-telemetry-test.524":"2020-11-15T08:22:31.796Z","0.2.28-telemetry-test.525":"2020-11-15T08:31:13.638Z","0.2.28-telemetry-test.527":"2020-11-15T08:36:03.236Z","0.2.28-telemetry-test2.524":"2020-11-15T08:52:39.419Z","0.2.28-telemetry-test2.525":"2020-11-15T09:00:45.529Z","0.2.28-telemetry-test2.526":"2020-11-15T09:13:31.274Z","0.2.28-telemetry-test.523":"2020-11-15T11:59:38.016Z","0.4.0-next.1":"2020-11-16T03:42:21.593Z","0.5.0-next.0":"2020-11-18T06:18:23.529Z","0.4.0":"2020-11-19T19:27:31.480Z","0.5.0-next.1":"2020-11-22T09:52:26.555Z","0.5.0-next.2":"2020-11-24T17:08:37.956Z","0.4.1":"2020-11-25T13:42:43.982Z","0.6.0-next.0":"2020-11-26T22:01:11.275Z","0.6.0-next.1":"2020-12-01T21:52:14.298Z","0.5.0":"2020-12-02T01:04:40.188Z","0.5.1":"2020-12-10T01:06:25.926Z","0.7.0-next.0":"2020-12-10T21:54:08.200Z","0.1.59-ink3.22":"2020-12-12T11:26:33.140Z","0.1.59-ink3.23":"2020-12-12T16:42:01.222Z","0.7.0-next.1":"2020-12-15T13:50:15.722Z","0.6.0":"2020-12-15T18:00:32.820Z","0.4.0-telemetry-test.314":"2020-12-22T11:45:32.222Z","0.4.0-telemetry-test.315":"2020-12-22T11:59:48.344Z","0.6.1":"2020-12-23T16:50:54.136Z","0.7.0-next.2":"2020-12-29T14:37:34.572Z","0.8.0-next.0":"2020-12-29T21:18:24.459Z","0.4.0-telemetry-test.326":"2020-12-30T09:56:07.342Z","0.4.0-telemetry-test2.326":"2020-12-30T10:31:16.699Z","0.4.0-telemetry-test2.327":"2020-12-30T11:05:46.575Z","0.7.0":"2021-01-05T19:42:18.893Z","0.4.0-telemetry-test.373":"2021-01-11T13:03:29.547Z","0.8.0-next.1":"2021-01-12T20:03:31.873Z","0.7.1":"2021-01-13T10:52:17.270Z","0.9.0-next.0":"2021-01-18T19:26:18.165Z","0.8.0":"2021-01-19T18:46:11.624Z","0.9.0-next.1":"2021-01-26T16:36:08.544Z","0.10.0-next.0":"2021-01-28T16:34:24.409Z","0.9.0":"2021-02-02T17:05:59.615Z","0.10.0-next.1":"2021-02-04T10:43:40.057Z","0.9.1":"2021-02-04T14:02:10.030Z","0.11.0-next.0":"2021-02-05T12:15:34.289Z","0.11.0-next.1":"2021-02-11T10:04:07.822Z","0.11.0-next.2":"2021-02-15T10:04:12.660Z","0.11.0-next.3":"2021-02-17T16:00:36.042Z","0.11.0-next.4":"2021-02-22T07:12:44.663Z","0.9.2":"2021-02-24T14:24:19.439Z","0.11.0-next.5":"2021-02-25T11:04:01.229Z","0.12.0-next.0":"2021-02-26T09:28:19.198Z","0.12.0-next.1":"2021-02-26T13:47:33.994Z","0.11.0-v3rc.0":"2021-02-26T15:57:49.864Z","0.11.0":"2021-03-02T10:42:43.423Z","0.12.0-next.2":"2021-03-10T09:48:39.041Z","0.13.0-next.0":"2021-03-11T20:13:20.274Z","0.12.0":"2021-03-16T19:31:25.395Z","0.14.0-next.0":"2021-03-25T17:28:53.754Z","0.13.0":"2021-03-30T17:09:08.666Z","0.14.0-next.1":"2021-04-07T15:31:42.004Z","0.15.0-next.0":"2021-04-09T15:22:27.415Z","0.14.0":"2021-04-13T19:21:39.544Z","0.15.0-next.1":"2021-04-16T11:39:46.263Z","0.15.0-functions-next.18":"2021-04-20T20:30:43.234Z","0.15.0-next.3":"2021-04-20T23:37:43.359Z","0.16.0-next.0":"2021-04-23T11:00:48.023Z","0.15.0":"2021-04-27T21:42:39.834Z","0.14.0-telemetry-test.55":"2021-05-03T13:39:58.411Z","0.14.0-telemetry-test.56":"2021-05-03T14:40:39.085Z","0.9.3":"2021-05-04T11:23:43.086Z","0.15.1":"2021-05-04T17:16:42.285Z","0.16.0-next.1":"2021-05-05T06:39:16.204Z","0.17.0-next.0":"2021-05-06T18:20:08.469Z","0.16.0":"2021-05-11T18:58:42.245Z","0.18.0-next.0":"2021-05-21T08:04:52.177Z","0.17.0":"2021-05-25T16:56:10.830Z","0.18.0-next.1":"2021-05-31T21:51:33.386Z","0.18.0-next.2":"2021-06-02T13:50:49.316Z","0.19.0-next.0":"2021-06-03T19:08:35.589Z","0.18.0":"2021-06-08T17:19:11.018Z","0.19.0-next.1":"2021-06-10T13:14:04.459Z","0.18.1":"2021-06-10T16:49:34.415Z","0.20.0-next.0":"2021-06-18T07:43:13.149Z","0.16.0-telemetry-test.296":"2021-06-22T07:37:00.313Z","0.19.0":"2021-06-22T21:03:13.752Z","0.20.0-next.1":"2021-06-28T08:46:40.623Z","0.17.0-alpha-ssr.263":"2021-07-01T17:39:49.013Z","0.21.0-next.0":"2021-07-01T19:58:53.107Z","0.20.0":"2021-07-06T19:01:54.574Z","0.21.0-next.1":"2021-07-08T14:33:42.662Z","0.22.0-next.0":"2021-07-15T15:53:41.436Z","0.21.0":"2021-07-20T15:07:14.510Z","0.21.0-alpha-remote-file.48":"2021-07-22T12:01:03.931Z","0.22.0-alpha-qe-sm.41":"2021-07-28T14:18:30.743Z","0.22.0-alpha-qe-sm.42":"2021-07-28T14:49:22.425Z","0.23.0-next.0":"2021-07-29T16:25:31.477Z","0.22.0":"2021-08-04T18:05:55.156Z","0.23.0-next.1":"2021-08-05T11:53:53.629Z","0.23.0-next.2":"2021-08-05T18:13:13.041Z","0.23.0-next.3":"2021-08-09T13:15:05.268Z","0.22.0-alpha-qe-sm.64":"2021-08-09T17:26:16.716Z","0.24.0-next.0":"2021-08-12T17:57:07.881Z","0.21.0-alpha-remote-fetch.59":"2021-08-12T18:07:07.610Z","0.23.0":"2021-08-18T09:06:06.229Z","1.0.0-alpha-9689ff.27":"2021-08-18T12:46:23.231Z","0.23.0-coreutils.29":"2021-08-23T14:12:32.294Z","0.22.0-alpha-qe-sm.83":"2021-08-24T14:45:20.955Z","0.24.0-next.1":"2021-08-25T09:01:52.290Z","0.22.0-alpha-qe-sm.85":"2021-08-25T16:10:00.609Z","0.22.0-alpha-qe-sm.86":"2021-08-26T13:32:28.184Z","0.24.0-next.2":"2021-08-27T08:49:23.889Z","0.25.0-next.0":"2021-08-27T10:20:12.900Z","1.0.0-alpha-9689ff.5":"2021-08-30T09:30:02.452Z","0.24.0":"2021-08-31T18:16:00.893Z","0.22.0-alpha-qe-sm.108":"2021-09-02T12:31:57.881Z","0.25.0-alpha-remote-fetch.78":"2021-09-02T15:49:36.988Z","0.25.0-next.1":"2021-09-02T17:11:35.876Z","0.25.0-alpha-remote-fetch.79":"2021-09-03T12:01:45.145Z","0.25.0-next.2":"2021-09-07T13:54:30.413Z","1.0.0-alpha-9689ff.8":"2021-09-08T10:41:40.334Z","1.0.0-alpha-9689ff.17":"2021-09-08T19:21:38.039Z","1.0.0-alpha-9689ff.22":"2021-09-09T13:25:39.718Z","1.0.0-alpha-9689ff.24":"2021-09-09T15:14:45.860Z","1.0.0-alpha-9689ff.34":"2021-09-10T14:20:17.014Z","1.0.0-alpha-9689ff.36":"2021-09-10T17:02:11.733Z","0.25.0-alpha-qe-sm.46":"2021-09-13T15:51:22.964Z","1.0.0-alpha-9689ff.13":"2021-09-13T19:39:59.239Z","1.0.0-next.0":"2021-09-14T10:17:45.193Z","1.0.0-next.1":"2021-09-14T19:34:29.578Z","1.0.0-next.2":"2021-09-15T17:35:29.696Z","1.0.0-zz-next.0":"2021-09-15T19:20:31.809Z","1.0.0-zz-next.1":"2021-09-15T22:47:11.242Z","0.25.0":"2021-09-17T19:18:34.236Z","1.0.0-zz-next.2":"2021-10-05T21:16:08.654Z","1.0.0-zz-next.3":"2021-10-12T07:31:30.383Z","1.1.0-next.0":"2021-10-20T19:54:47.568Z","1.0.0":"2021-10-21T11:59:16.241Z","0.25.0-drupal-next.94":"2021-10-26T00:54:17.429Z","1.1.0-next.1":"2021-10-29T11:03:18.377Z","1.2.0-next.0":"2021-11-01T09:11:26.078Z","1.1.0":"2021-11-02T15:37:28.908Z","1.2.0-next.1":"2021-11-08T08:04:52.318Z","1.2.0-next.2":"2021-11-09T20:58:37.822Z","1.1.1":"2021-11-10T14:27:14.957Z","1.1.2":"2021-11-11T15:07:47.181Z","1.3.0-next.0":"2021-11-15T09:49:09.789Z","1.1.3":"2021-11-15T15:24:02.376Z","1.2.0":"2021-11-16T16:54:04.324Z","1.3.0-next.1":"2021-11-22T12:35:27.574Z","1.3.0-next.2":"2021-11-26T10:08:52.220Z","1.4.0-next.0":"2021-11-30T12:58:36.991Z","1.3.0":"2021-12-01T12:54:18.590Z","1.4.0-next.1":"2021-12-09T08:43:38.656Z","1.5.0-next.0":"2021-12-09T13:20:57.717Z","1.4.0":"2021-12-14T13:39:09.949Z","0.26.0":"2022-12-07T11:52:07.815Z"},"bugs":{"url":"https://github.com/gatsbyjs/gatsby/issues"},"author":{"name":"Kyle Mathews","email":"mathews.kyle@gmail.com"},"license":"MIT","homepage":"https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes#readme","keywords":["gatsby","gatsby-recipes","mdx"],"repository":{"url":"git+https://github.com/gatsbyjs/gatsby.git","type":"git","directory":"packages/gatsby-recipes"},"description":"Core functionality for Gatsby Recipes","maintainers":[{"email":"misiek.piechowiak@gmail.com","name":"pieh"},{"email":"katherine.beck@netlify.com","name":"kathmbeck"},{"email":"philippe.serhal@netlify.com","name":"serhalp-netlify"},{"email":"mike.gualtieri@netlify.com","name":"mlgualtieri-gatsby"},{"email":"mathews.kyle@gmail.com","name":"kylemathews"},{"email":"johnotander@gmail.com","name":"johno"}],"readme":"","readmeFilename":""}