{"_id":"@simply007org/gatsby-source-kontent-simple","_rev":"34-7d2618231f1f55a456fd3d81dafc1806","name":"@simply007org/gatsby-source-kontent-simple","dist-tags":{"latest":"1.0.0","vnext":"1.0.2","vnext-alpha":"6.0.0-vnext.2","vnext-beta":"1.0.1-vnext-beta.0"},"versions":{"0.1.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Loads Kentico Kontent data from REST Delivery API","version":"0.1.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Simply007/gatsby-source-kontent-simple/issues"},"scripts":{"build":"tsc","format":"prettier --write \"*.ts\" \"*.js\"","lint":"eslint src/**/*","test":"jest --passWithNoTests","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@kentico/kontent-delivery":"^8.2.0","@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","gatsby-plugin-sharp":"^2.3.13","gatsby-source-filesystem":"^2.1.46"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"6.0.3","eslint":"6.8.0","gatsby":"2.18.25","jest":"24.9.0","prettier":"1.19.1","ts-jest":"24.3.0","typescript":"3.7.5"},"homepage":"https://github.com/Simply007/gatsby-source-kontent-simple#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Simply007/gatsby-source-kontent-simple.git"},"main":"gatsby-node.js","publishConfig":{"access":"public"},"_id":"@simply007org/gatsby-source-kontent-simple@0.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-QHHdUMIPh9AzEMwk3ORVRTiS0GnQXj/6PwwTgygPwVHl4V3gIxEuc74z65bCN/FN5cTgrUy1QtcO4iYP39s5Sw==","shasum":"8cc178ea4b0bd1d885d4e7ea5c708723386168ae","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.1.0.tgz","fileCount":10,"unpackedSize":22440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYOZqCRA9TVsSAnZWagAAZo4QAI53QwmsrT6b4tJwJKfD\nekcCPNo4307MWohF1xp9wiZhholHYfGJShgueV36Z5jbacddAghd9kB89t2F\nJKYQefjA3If7b/QgacOpvMzgE/Zd2ONM5EnId40shl2He3Ilv6Sb1oJA9aO2\nrfuFRjYHU59ePPHaeI6uKfSNJhI6chZOPmJSCUFdq3x4Ln/EvupI5BS4EQxg\nMIObWVGAZ7KmJOr4YV80Aa4FcIVUM4Tg1gy3kBTitL4jJ5fkK0L4KlSCzhfR\n8mmu11zHXTl6kMZJsweyocoUWPRCOYqiJ+WfblBKvB4zONSnx0Ibl/SlenNW\nBvVWFQjwXatc0wdoohIALk3DqjL2IxiYAFp3oSllcoDx/5DufAuwU3vocpzF\nKC4QWI3FaTInVQBmfs57lhySa1DG6RNzcKp2Z57kMIZjv0c0d7HyfweB6hTp\niuOeAlvDNWSQ3uuDHO7AkCQWj76NoKQGC9N/fDO094KuX2fBp6SYKDsfcKH8\nUdFPopwWGFujOQRF5bMebTGUbjt2yOvGMK/Ix/YecMYoMFFIATN366negaj3\niiDWugwwQQ4fn7p3jBXaRcB1R8Jc2A1g6sbhbpyLrlqA7odtD3m03Sb2ixmv\n5OlZzCH7viXVwxGOh1pEOwaxykWjxdh+GbRHqkHuEeNSTJuBiS1fwDohvEFy\nqOpW\r\n=gHlD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDekXblPSgymbEaV/fzrxMe3UJYCb4w/qxFbTS3e73U3AIgKzxW5GIkr3weaLRw3Bht1zZfawqFE2qvFySCz+GvMUE="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.1.0_1583408745395_0.23888206556307812"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.1.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Loads Kentico Kontent data from REST Delivery API","version":"0.1.1","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Simply007/gatsby-source-kontent-simple/issues"},"scripts":{"build":"tsc","format":"prettier --write \"*.ts\" \"*.js\"","lint":"eslint src/**/*","test":"jest --passWithNoTests","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@kentico/kontent-delivery":"^8.2.0","@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","gatsby-plugin-sharp":"^2.3.13","gatsby-source-filesystem":"^2.1.46","lodash":"^4.17.15"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"6.0.3","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Simply007/gatsby-source-kontent-simple#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Simply007/gatsby-source-kontent-simple.git"},"main":"gatsby-node.js","publishConfig":{"access":"public"},"_id":"@simply007org/gatsby-source-kontent-simple@0.1.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-NlT3jJl+htVs3+AyEn06BMIS10oGwnLgHVq2r8o/86m9+I22XXeuuY92n+6HPFiItji44ujDy8ZnkAUp11aiYw==","shasum":"9a9f96ec1fb2c52a57cb0e679f489d4dd9dff456","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.1.1.tgz","fileCount":13,"unpackedSize":117676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea7fwCRA9TVsSAnZWagAAEdMP/iAdLDHt38IF5jullsvi\nGkH+gQSG2lcXszqVPxm9NSt42GeIsvwbMpIEJTC9Tvfa5cv0pz65tKOBRRLx\nws/nRMB7I/7rKy1P/ZrEcdK2XVFNlt3tIkSRVyoOSpSSl2MsWxbu0VQe5v93\njXAJ/1EDuTQocw9TfDTMSLVSPEoZvNDIwQaov0oxnqj+1dHAw4xs0m2JuQyE\nvDBH6uEZN0aBWzXgznaQ+m32Rq/FT2UBLgsafb0qDCpCLkGMdjWnKGeLLluL\n9KqXAiOM5t30ejl1C4rzM6K5cZ1sbbgG8+1ogC8hyzxQIqLhcNRaPb+8nngy\nd0k3CYZdzBFtSxsrpfR47+rp5HIPc+UroRDib6AJ1tLbHXXWvzXf556gjopu\nEFHu8BGzWMC+E8V8HX2kUl6hnMmxlj5+PbBAOWSEpFFzVBue3RQ/PMlQIsA2\nOQa9f3yecFf82iwlELHVq9gfEyGx+vSuu8p5RPG1tqOtkR/kxPaFUKak/sTy\nzICE+4hr4Pl3gJpfEV0bQ5ZKQMrlDRH4zmLLsikmWvctHbWB7/zyvc85IVUY\npp/CMEGENC4BIDwdED3TVqrK4PsPZg76/UBoEbvaUN4kVjt2sdn1EiryvDZq\nlQQzlfP3ZSuj70XNA5q5BlvE5Je3RoERITTpOaQ0mfat2GAgnizjamVlJAZT\nI3r8\r\n=oH1O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJmffT0nSZRkoKsih+Dn/uVmzCtq2A0zRCFbBMLcp4YQIhAPeIDYmpovC6MjvWRCA/6MxAl7h3e/Ma33bb2rOhgVoG"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.1.1_1584117743805_0.09532787411081323"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.2.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.2.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Simply007/gatsby-kontent-packages/issues"},"scripts":{"build":"tsc","format":"prettier --write \"*.ts\" \"*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","gatsby-plugin-sharp":"^2.3.13","gatsby-source-filesystem":"^2.1.46","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Simply007/gatsby-kontent-packages/tree/master/packages/gatsby-source-kontent-items#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"https://github.com/Simply007/gatsby-kontent-packages.git"},"main":"index.js","publishConfig":{"access":"public"},"licenseText":"MIT License\n\nCopyright (c) 2020 Ondřej Chrastina\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@simply007org/gatsby-source-kontent-simple@0.2.0","dist":{"shasum":"107dfd080ad52ae1b1aa7782dabba3febc1ae658","integrity":"sha512-GhFl7G6MUm+Vi2vyXR7+2Sp+s/scvlLtxt4fH960pk3qw0f2f4YABXljTF8BtwLyyEXqtH0KARQ3hgnhJKQ9kQ==","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.2.0.tgz","fileCount":39,"unpackedSize":126377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeczzCRA9TVsSAnZWagAAdwEP/R37UCfo84AoPx7UCGd2\nJS+ciGK9CwVaiHP4H7ezp6s53A1mUt70evek6PMexas6ygHqCIjheVQOlDvB\nQcvEcQudbrXE6tbOcSgweLTnQCXMXunPY010c1aRmzPjm+XLl+f4fSn1AhxA\nXaVEuHihyuRjofyWVy3nkznm4k4Esp4NacNLUeVJhfjLmF9PVBoLEbxUwVst\nKQWwCKkizdhVw111yB9q0fTZCqCAhNW3lWgGC14ZvmKUG85LoP/uLGnuurtH\n1HD8n+kErEyjOvrUV8EWQRWwcIb+4iThUbzOExyWG/QtoWuY1c7DPmijqYqa\nQMgC+ectNSVIgPw/32koTHozsS6j5pMwuyGJX+wzhRa3aXMTrA5dOnWCu1ER\nBNEr47vg1tLo5iV7dNRX2/W4o60BJSbqpNzi8O24SOXm1LJNEZR7E0ZbCxc2\nbBxEBrpj7MvXS99LOG3zJVMURV70cvjDvy6RJPhhOJWjxHTYMUhvQHYJiUiC\nhdmCte/HzzAaCRO7Ka+sbgaifnjDqJ4GXTdqbyVBUUexq4Ir7OfeD7GLhdXT\n4TluZG26YaxFJUGfwavQbCZojNnQgErxs2zscYXnvmyzglU/crlP0sixx1R2\ngw1FQUSbhg6oUWucvHWwPf5j+KCjJiNQFCJlAM4WZM0h2oXVcOFuyS4WGgtf\nnkxJ\r\n=2ohs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDJliHbswiO6Sc2FD6FtuY7VjcSPUhVM9cYoc50UVD98AiEAtW9ZgfbYAasorUR+YnRN8HTXSHh9zN8kWd4QPLFOvUw="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.2.0_1585040627363_0.761127178439496"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.2.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.2.1","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Simply007/gatsby-kontent-packages/issues"},"scripts":{"build":"tsc","format":"prettier --write \"*.ts\" \"*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","gatsby-plugin-sharp":"^2.3.13","gatsby-source-filesystem":"^2.1.46","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Simply007/gatsby-kontent-packages/tree/master/packages/gatsby-source-kontent-items#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"https://github.com/Simply007/gatsby-kontent-packages.git"},"main":"index.js","publishConfig":{"access":"public"},"licenseText":"MIT License\n\nCopyright (c) 2020 Ondřej Chrastina\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@simply007org/gatsby-source-kontent-simple@0.2.1","dist":{"shasum":"797711a30a7fb5ec65c19c6911854496d359d319","integrity":"sha512-1NH5wLKbpeiNIAX6WjlrCGcu4oKS9MT0BvD2hZ1mgZv0dwn/qhD2TYwldhV9QJwDuKfpMRa4SRbwqQYRBgZLzw==","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.2.1.tgz","fileCount":57,"unpackedSize":163015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeec/RCRA9TVsSAnZWagAAaroP/RgHwdxmEIo4AYqZvrtf\n2bSDFhtr4hyGC6AzD/pYgBb7OlVSs4yej6HT4V1WqluFQvLr+LN0jdb5k+nc\nWFAmajsTMistB9u9t7wKdbv1uS9hGHnjkwwurMXq5TkNzxcuHohh+zz1wqW2\nLI7bm4NepxIC+FkLNo2BQX7h9oRfHya7xL+X2vvk5pZ9eiw1+EkLzwlOCX2q\nNbnJbpqKTNgXX1BOJAF/BbkROlHk8ioL+d6fZr2p3gIS8DR010U+Qqhu6CKn\n7HP3Qk94hBL7V0pAwR9Vqqgin/dg9ZW6mLvizPyOv4eFT0GmyFxRlYHiNC5K\nrfIvN+Ruz8uuUdiWuPmq/6Npil2b4iHghgErJk+nGdcr2joOEeVCwNGotSWV\nEECOOrDm43nH02S2b14VRRV9IjvPinYV2y2LHiJnBRJ+LohK45yoJAeeDDUV\nGdioVBW8F2HJ5CoisOhkBJqAWmfulkrpZkXu6ATpi1+71KJQBIzG6MMdegzg\nynWBEs7UmntWev2AKxg3lYwG3Rd8Knms82EIWvhsSGQA+hIJCHV4uumc4+mh\n9v6bdXa+2NYk+40Fy9k6LmUct7UUdp/mWlYKHnC1MogKxpNQwH4EAKhF9g67\n0Eo/6AxePKeV+Q3CHd1YKP8tU4/AoK9jAt3SU62IKsOLjmc2HnLAmRP9IXh1\nbuhH\r\n=K3n1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2LSdt7lIrR2Dq0nfCj2H727VnJSxrLrPFaPzjydOVOAiA74UMvPAOPtuPvSo4KyO7CFek/ZJRbampfpY9CIu2LPQ=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.2.1_1585041360654_0.19117866180327692"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.2.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.2.2","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Simply007/gatsby-kontent-packages/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","gatsby-plugin-sharp":"^2.3.13","gatsby-source-filesystem":"^2.1.46","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Simply007/gatsby-kontent-packages/tree/master/packages/gatsby-source-kontent-items#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"https://github.com/Simply007/gatsby-kontent-packages.git"},"main":"index.js","publishConfig":{"access":"public"},"licenseText":"MIT License\n\nCopyright (c) 2020 Ondřej Chrastina\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"@simply007org/gatsby-source-kontent-simple@0.2.2","dist":{"shasum":"8e09c5348741d168fd607c75d86077475a730249","integrity":"sha512-lMeU7+kcTQsCU0vrx8aAPRHVbhes6uk6PDFtVuWnG7cKEYMgtIvz4n4OELW1X0NXBalkAJxQwyrpWjUSCJNmYQ==","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.2.2.tgz","fileCount":19,"unpackedSize":39303,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeedh6CRA9TVsSAnZWagAAJxoP/3xwHeBhr1KDD8/iUgGE\nA9glluGAnyO5ZiLWXmRAec3IXpL3fGAUPiCW2N4+458EVC8TkPukEgTY40ar\nGF4+er6/V3Z0A92kXR7vjq9x4zBz9uaicE0JWKmCdoJpCcVkOgqYv478WjF8\n7CVwISLtSMMOO2gv1QXlw3hvS8Ua/w3hOswtKCKyFYJUfX5ATmhWNFUXmkCb\n6Orfpfy/36mAE0TIZldu3u+J5CtXm1AG2F3w/YD7BhPO/+9VGLauJy7LdepZ\nosuieGcvud408c+qg3zayUYlBho6NAss65mlXURGg2mrrYUc6vEw1Rn2268r\nxPeZJmDRMvcVw2Yie7stJlHbOnfFK0Ybh1+w6n0lC9FJobP2xdK3y48mwGAk\nOMp36woP8juqXeroP9Can4g+tAufVqEbeXspJkoN3uvsyWxd6vJ3FpI3VlUH\nQyQ/s1En/529va79kI5a3x52DHeLhKJT1qos1ec4xTvbDi8H7PEj58Mpf/Fl\nnCLa2UGl7L3Yw6nsdLZhLmjEaLcx4zctxy7lvSoUxQY1pFIEv6U5gxaFxqJC\nJ8SE1J4NBHP0MoRKkgetkH4UpLBRj8pp53/fk04N1aK+I2DWQrB0PVy2ydvH\nFOWVJa7hDopHGn45c0eP297weCS7Xa+XAI5e3pURSd85wEQlK1pONg9awURQ\njxtk\r\n=Rejc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGE+jof7meWUT7gXHguw9RdzhwSetraEy8mUXHuf5hDOAiEAohGZT4XpWqedMy5hMuPlIBEoTFnksc0rOu1bEERjdiU="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.2.2_1585043577919_0.23095286723212438"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.2.3":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.2.3","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"c9d9def78fab759bca70e2beae1047004e301433","_id":"@simply007org/gatsby-source-kontent-simple@0.2.3","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-JznPB9RKJSgNvgJNCaDxgUFatu4r9EGWT1XD0w+p0ZGqK7/JLXi31ExpicBtr8VZH/7Kx+wozmiDefzD91yXPA==","shasum":"222cb68eb56817e9f03a6456c79a84053b461f56","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.2.3.tgz","fileCount":16,"unpackedSize":39465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee5AHCRA9TVsSAnZWagAA5IoQAKR1fsqCFvXv28NA2g1M\npUvi2Oyhil+n1qkxdXYo7EHP9UXpgXjXrPzS4jy5JKkhL4vfcT7gUHf/VJH2\nzNHPjSawPDBRCS1kA/gvl7Hpkj/qaKyYLG8qXKkGPW3ZhIwV4xXzpOBshORZ\nU+ImKm6OQ6DpywjXpkh0gX9wPMf7i5CJEqe9i2900C65byEUesIeL8Va7oDI\nPfXB7182nCFGIKhIWie0t1Tb/wgWK4+Jpi4JzTPA6W+kivPXShStxUAwVqS6\nyZlkKH3TVwdzr7bKoFmSON1cjzgphbmuP0MefDqwJ/lgFm1GeD3cClKyK8IK\nZWUaUrWvMUlbIY0GeAAP4vrN8qXZPzDUc6d7iZxLT194IfwBkDjKrVMp1Dn3\nGdHmNoCMNwESRszwx7ShpSIQCRw3cFhpq2GJML/dv2gB/6laxZe6mGccdYgv\n45TDvdYEz6vMuqu80fVXqAA+8du04kOch7KnThLjiwJBDzxKluCv8MTvqNY3\nfopDi3FMe3LQcOLICrCDoC17BGbtNFL4rceK0RwYVM1azObBHa+AQ0LtTpFm\nADZuzC0qVy1C+Eb4Dv9en2g5WhseBD6VtJLMV8rdO0jGJsMxKF0LUjK9LZYs\nFef8X1iFmexoxsYZ4ZM6OKqRN3ZNEUJ7HMkcA94cItJZ5fa3qkosVmaT+IjJ\nTvPM\r\n=ibiY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJW07KvByHLYk8J6YWSN6JyUiRft03iPZUVHwwZj/x4AIgAXt0KCidNlbPjKd4+ytpSirguaqIn/5XXLrC9jI6d3I="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.2.3_1585156103307_0.9238279139502077"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.2.4":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.2.4","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"ab5343045617bc44cec0add5e0fff7942b8e9d40","_id":"@simply007org/gatsby-source-kontent-simple@0.2.4","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-hcOC0gubBA06ARfkRMX4jq6fDEqPeFaBQzI5gIvikZzZ0dFU4dWG+q70iGhLbIINZ2dO+U5SlBe7xJgn6saPrQ==","shasum":"594f403b8f0ec98609f1ae22f373c0052b5dbab0","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.2.4.tgz","fileCount":16,"unpackedSize":39472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefIgUCRA9TVsSAnZWagAAD5cP/1HdT408CFajs/+GIqWW\nVJvwpmF/P1JUf4aVBy/pidf7Ii98mQxVWmzaP9f/l0Ti3rnZVbK0O1vlD4q+\no6Uo45Tn1waVPYKjgXkhUvnrAZRbPRh72cF9ayQBk0A4U7bdno15mhMun3xj\nM2K8MxFdotqwiLhY6nhPlOG/IGm8k5TmOZJgvhFgOK+bvhUJ3amq2qmXQaAJ\nkdP3kITn8LPzX/bneGlz0icIExSpWgVskdfn6E6QwwraS8DoaUW1YzX5vcay\n7FGkrQdJpRoo1Xwx83wDGrF1eUZiAOU7dHH1KD8qrTft397NtrnrgJNUtdS+\nzvYL4R7n+o+9XcHMDJAmBbBow0vTuS607hf8X//lBv4uVEXoQzo8+HV/gdj3\nAlGiY6t7nk+hKQCj2jpv/BQjR2/ry8U8eCEwzPVmRGXLEWu/DgYuOP3xkVm0\nR/4ui7A9lJ67pbsnhZiT5sOPQGliOXOMX4tE52VTlbopXSJybjlSYvWJEl6T\nXuoagIx14Do1QwMNjZ4ZgUz1sk2sfQxZoLbo2tD38L+Oje0kiKi9/fDbNpQC\n/tvKvz/x2xVNO4boIkOtvoQvGGr1rfq+pnQETIaixy9Qj14D/tBin8/rTDzA\n9IKk7Uaa7YZZSVGSt9k2Eac6navz4kB4/N+0tQy69mR6pRK/7iE0NwKQ4MQE\nzUuY\r\n=xnn7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtrkbcSlMsrYRLiV8AHtbXkI3iB+7AG022fxsv32MgcAiBqfJm45aQjLdCkVY3cKtOtzPcupTnaHcsoRLWzS2xG9Q=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.2.4_1585219603901_0.5277433923707486"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.3.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.3.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"6162d38d8e6a96f9ed4d072a3a9f241bf63f1380","_id":"@simply007org/gatsby-source-kontent-simple@0.3.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-beYZId6WOv9w7d2O8kJ4l7uGlNziqIeLZWcxHhZ1e1n6CCMTJwM7/UGMxNXjldwxbZl3ZF/OOtkRHJJ35km8Kg==","shasum":"6632ac4d22c23cdad7bfa44ff1aa76b205f6bf78","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.3.0.tgz","fileCount":16,"unpackedSize":39472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefI6zCRA9TVsSAnZWagAAVRYQAIKWQ5DV88YZ7kyq8U4X\nzaJ02QlXfJkiGLl2zhRuOS63klK+nfN8KkCHRqldUmmfbNvk3oDEswYdMptP\nBH94L3SIiJQQBaC1gRqwEX8MzYdfDmIs9j+4yyq9l/4H6aJqDzq2IxnT1lWJ\ncqNkxYxxmGVErUBpYHnRFRZcincFG/kZAoN5hz7nPZ+8SlB/fC7GLjVIfwub\nWqPgTUv7zbp2+Agaprrl9l6Azo1DAfZesCvW7/GnU+WEfGt17CiyVoglKVT9\nZWk+gy/JsXN1EIVoJXmOhfgd2GSngkcUUm/2Ew23CRBQt0xPvnzoczuCWQVl\n56UCqoGiHAg6mjzYQxpF7UTQ9OFTWnTPJpydwaddYWWhoDiQLiPv1llMIbxG\nmU/8tMxwoCiVQlFf1JAq9fwLMUixyZaLGz+QRGUlsdJD1K+ekwQPJpl2GFON\n5oRuv7yWTCWA6heptoFirpjWa3+OZ/DlAzLTRnVlenRZpfl32zX34guPikUI\n3w8uyoB2xbnhwORiwbesKJ59c+7qnnk96aqTBxJe/QqGvKRIoEyfuqYSDgEe\nDXRrY2NtQ4Q6kUGNnJgG+UI4DvarKoVFJA10ufXp/opEJg5xi817OwcIFao0\niLZlX6dW6UA81CLXbODlwWbACNbNqya5EAH9/8s+JnpI4SbkKxtJEL/4+Jp1\nokSm\r\n=Rwdy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr8w1ze4jL7WoPZK8reHne2BABc+4C/HwiC6C+igU00QIgF8385ry0eeVM96aqbqdPqF0hTSHeW9zp7xNahXXOBnk="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.3.0_1585221299323_0.40102136219165163"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.3.1-alpha.19":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.3.1-alpha.19","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.18.25","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.19.28"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"eb064dd969d2aaf932a176e723d7153883bdf542","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@0.3.1-alpha.19","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-1WNd/gaOheSsybF2gS5AjlfzsaIB0NtrdLR8uclpFGsqa2YR/lb8/uox9HZ+oEY38k6FZnv72UUpbeUzzNXKug==","shasum":"1f3454422067657dc922f8d63e536bed240f868f","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.3.1-alpha.19.tgz","fileCount":16,"unpackedSize":39489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefOWVCRA9TVsSAnZWagAANrIP/jZcFl5zlhGjlHd9tDqo\nB93mc143Dq3lRXUIGeLpZn3mxW3vkFaHlixqT4WYQxQmj9dWqErxLfFkqYVQ\nucL60EZk0H+ctYlC0ROIuLQ5oTvaEj1EY670htPeTnVz3apKpecXhD4m/LW9\nu30vVJAOwIj/3934upk6fB3Nx6xLDNzSWveTA2UQOG1surQw1IEnE6ZxjkGr\nyL1yK0H4/oxe+qajYJcuQ8mqo6YOkZY+T/RjyTtcOLAU1Llp6UAntGfA1YYd\nri0/Fn1I+xnn6wjs3YajmU3k/7KS6L5OpJKJuG7V9Q4vAsKpxR+vCFdkEldr\nJhbVePAT3bX0NoieJaGyghAWgMEO6wgglhG2J/yAaZlkCwbMGHmC7RyUFYQb\nxqIsHz3cGnePlSHKRDRalpTEiChKBFm++lI/4GJvcHufOH5Jly0TWxNOvSt3\nGfj0AgPeCJQY2BqpdieUPc4MK8pXv/DgKsUmk9My6w4Ghn2mxOKwjLp7U4Kp\nSZlStQZNK43Eh+KRpS+qU7nnp1djxmsUt+pY+qwVAHH4T6K3JxxTPNhqPFAm\n2CIvsC88zGsrboSlNxUAPUHcCUtx+tcL7jVlTwHHdEyJpw6TqOBlKDmgZEaP\n6naW1lknf3+dUeUIhq+PyX8gd36TxT1GNNqQ8rG9I5ABVU7eVYvBmvy8jkY+\nhlSi\r\n=hrf8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXw72n5k3Tqq5Su2e332mRkxkXfiRSlAxucs7Pw0yLdgIhAOQaurVGRA0ax1MIl18Q7xAZJJMYjqL2qjZ1A2l+h/IF"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.3.1-alpha.19_1585243540902_0.4728597733068942"},"_hasShrinkwrap":false},"0.3.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.3.1","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"c2e86734e8eebbfc1f0258e36d9e0ed801f8fd95","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@0.3.1","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-qtCw2N6ZyugMxH9lz5Ot4oXIL2BHQSRlpK/M898ffAo3cBtgIORc9ElbP85QN/TZ5cXg45sBaTcOtPqu9byrCA==","shasum":"e2af997404c9db164083d38ac051fb1609edb33d","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.3.1.tgz","fileCount":16,"unpackedSize":39027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefPJaCRA9TVsSAnZWagAAkA0P/3YFHu4+jj3sbOre/bJt\n7VYodlYYJdDiEXEgQhRXjwQ2cM/LprM2UUs53aMQe4MXYxRHhVrdAAMIj74n\nAaSbgzdrY3VRnr340ssH1WjJ1cs9jJMwMdnHsggzx8Ze0FXciXAWO+yUFLBN\nRBXaNICTClv6+CnYjlVa9l9GlDXtUGgmS2puTPVJ0hd/HUuO3XF2v5IPUl/n\n9b9m3yU+x+2KY0NUh/86qdDbMgbakKfzjxzunhu5pfbEAXNcw1Rm6Oz6En3v\npXQUnWgzMxvoKeAd/INy83/Qn+SEkcSSxNjLLACgmxf3d4Kd1HOXBTjiRvmr\naA/DT/MWxx61aj/1P5vYYBCtGSYWi691I88U6iHF1DgZ9Y4qQfRxximWQVuO\n4ZBytjA+KLh55sFKvUu0Hj2n6IYVRn20f1FB5B2EV2hLK2Bqiz42AFnR34b5\nPX9AAR+PbkuMSQY1iTCiMF9naj5py24lSNplDshHSKaQE4QtDbpLY0fF3DeI\nUcWcz6nIvF/91uSrf4Jc6U2XqkE+AIDAGjrYqOFxtvViy0TJiKngF2fawNa4\ngR2ceSaK/eWf/Egz9m7ds1is/iXL9+6vkTqzCD3il7HCkbXfTbP82hszl1KD\nP5/jF+i661pH5QLHRBRvRrS72n38by/Dj+kAGMEtnbYEphyEEYJU/E56ytzI\nXTPK\r\n=ihXH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF96R53GZrKnO/DjS6FYXqMw05YVr3mZww1qcBotOWg2AiAEZcQEn+c9sWtCImlFAdlblTpJoxGW8IIX792JANfA4Q=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.3.1_1585246810172_0.309168153766469"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.3.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.3.2","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"90348ab2d8150214353948316881c6698295b8c6","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@0.3.2","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-dslgDJu/fLwU8kSvGG6VCmpIvkrGLLRtPhLsixkfo2ihS1QTSRHrNW9G78v/6GusNy1do+ieBN1Bhr3hvJNJxQ==","shasum":"3c1b3585d77ea9165afe090cfeda441f1b922e02","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.3.2.tgz","fileCount":16,"unpackedSize":39027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefby/CRA9TVsSAnZWagAAGUAP/A+lF8WIQVlDePUYpSWs\nIFpGnSsz0ZBJmE8Id+yTLZ/O3RCMn6JM/0OxnTq9IkmOvfMr2qS4lG5uIApn\nIW0njNu4fr3UWBCyesWpkO3Kzez54neRibl5YkMgdACqDVKLuch8vbbm0aTG\npZRcZDEljR/khtzJ1xzoa05xWnVE6opg2sp1Sbrnn4/8EDGVJRmB/qe1Y0Kd\nawqpnm8EStKrjGYQ3RtH6iVkVQa+P3QboXS4EJeRj6R0lQa4qvkWc1tjgbBa\nt2eTLvCf8iuW1nLIsMTofU/bKhv03VrAt1gVa0I1cpngMd6JFXKgLCd/LNGj\nO6I+UmrYezZZ5Xso8XLzjgmyIzJonv1faUnymF/HPRFomFWQTtxUBEDC3/xQ\nIuwwmW52yjDXL8mU75lS6ecAaqmUguKXQw0p3r0EtL/JouClyP6MzoBcFMxq\nxDHsN95RwSkuKmzqYz86jlJG4bmosfqYFcCrTeiHW6daQkTwyRap+onskDlj\nK2Ig9Z82xP2rtOLWWMcOQKrA6CzzSbTaJaSOpaKtAJ0QN8OkpmKGV4gzWHiI\nC3wXJesyXm4FPu0A5E3SbaCuPDaDo1BY+yRwoWG7AlUCfFsCi3/qldppYIWU\ntGfZ4RqrbOHE4/1emNgzyFLZL+WuNOq5a2VZ3tzj1P1u3kqWE6U5rpQ9hu4u\nc6dv\r\n=/JIJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7nKagFH27HKzLq4NWRHXc4JyB5yPFLB5GK4P/6suTswIgGC5ThP6+qvc2tp+5DLkTqVM4RGFQV4hK95kG8+F3L4M="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.3.2_1585298623472_0.7101876470627602"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"0.3.3-vnext-alpha.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.3.3-vnext-alpha.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"15d5e69c10449ceb29486ad79fb5a570fa5f574d","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@0.3.3-vnext-alpha.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-jXbfOttM9zpRb+HVyWAYvaEyNV8+Q9Z+x1VgBNWsf1xchHI4sSq9HWsILsQO6D5H/LzIslvnS7efDCn0/8AlZA==","shasum":"7bccff31c9d4ee6477300b7392a64026537534ae","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.3.3-vnext-alpha.0.tgz","fileCount":16,"unpackedSize":39084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefcWXCRA9TVsSAnZWagAADygP/jCybng6GhvpEYQeu5P3\nMmJIS5OUqwgaK6A685aI9bf6XFEjMJowrU3aEVmxCOqCQ0eZypYaDlei7skW\nh3o+nWsg0gSDrPPEYU/UvtX1dAugJk5OVIlhgbkcPit0uU0g/i5mTN7BFv2h\ns+vhdzO6O/82wm3I2Lbm5nkNrsx5u+9NG4ITNet6vSnJKew192rUgTEvvf4v\nba2/QemIbKXyKfJwOyLoPs8CLKR1MywL2ZtdrmMdavBc/T+kg4IgNqPS4zPB\n5cso1F66j0Gx+YIjApoCRuUUFns4l92AZuTlB/nVZgd1k5NJ++KMAjwdVJhc\nyNeRk7xWEw6EtGvEzOZKwY2yqFu9tSq92zkY5I3hEonFQo4XdASt6zo5mh7N\n8/Xr4VL+aTyUVHRcZ9Ck6bmVnBIy+A4N6D85b9nduKjSUXiEG22/ACnCuUNc\ncYe52640NpO5+RKiw3Y4XwyH36rLLB9yPqCLo4socKk2VBTxTemR1M8lrdb3\ngR6GlhvygLQX47AwargdDx5I81chd23zhE1hk9Lj10Mfthuo4qkKsVv9tD7B\nhjsZerAMDmuqOveikhhcZ2vUdsZWA7MveNtvLy8xGu4VJ7QYmk+Xa+Xq4S4r\n8P8njTJl4edTHqhvxJMqrj3aXcBrLuTO2z5z1FNiHB2wkwStBOIpLq+wAKyB\nNyvp\r\n=WSbh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrohjOi8q9v5vD+7yV9Is+nfHgEcP+NgtK/D7DQRlT8gIgUnkVdw7irjmYNZpMwcPmtVoDteeekxN7wnhC0O0aNNY="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.3.3-vnext-alpha.0_1585300886872_0.16453973537466404"},"_hasShrinkwrap":false},"6.0.1-vnext-alpha.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"6.0.1-vnext-alpha.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"87f3c88d6e3b21280b29ce7301a3aacc462b7a7e","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@6.0.1-vnext-alpha.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-YTP7X/3ofxr0v+H/prW+x0TPHUBdPoPhVVjAhmE+rBConrGR5LSEGOjOtiSIiulWLQdRuLmMhftlIWF+Y+p63g==","shasum":"5e5811f99801ff52085a54f36076956583c18cf2","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-6.0.1-vnext-alpha.0.tgz","fileCount":16,"unpackedSize":39084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefcbnCRA9TVsSAnZWagAAt/gQAJIZ9Y3OCn0F1wLwn/rx\nJdkJ5LBaG61PxzFL2dvpKkSg5P/Q1Xifq5Qx8QQSOx6bCtOW8MEA0z8eu+SK\nVwVk8R+lIpI02n0a273hihRSw4XM9a4YvCuhNPLlEGeuKbXcHoLU9TM1eVDl\nmAK4jFqJErDNz4zPFyshGCCOwLOJL1euEV+AmBgo5HBqzwnvfFtNJ5Fp9l/M\nWr08rEGG9jZCtx1uIl0cf2XQo5XguUEZiNMAkz1g4VNxg0GIxJX+prfQAuss\nGAd1hsDV3ENrGYQkuD0ssFnjUPX4pPHrfzhPNK0OSqNPPrY/KAmybGo5iGni\nM7H/oV13rR1kjBTGi4Gj48r+N+tvlaqn/SX0j0A8lTF344A1rcv9LGUwVguA\n2dF1PettUP8EJQQ3yxNCg0SL9+dCgU+BioWXFDKXZjJ70JI0KyFsLGlUpgd3\nUFSQk/SXzh75QW2g4PfPpwKCubmI08UC/X60/ZQFyQNSWYaZIEW8sfUyZt1e\n5bda78U6je7oRg3PNwVilv/5XTNCbIs/LyJQG5/PgXasnrWJ6Hk+LMmSw0in\nIhajKSgKdOQbrBll15cZmdC1PPZWtuECZviS7PuDOkZcC3/CsRLs1IAUVuSE\nxrh7KZQTO/JF2JdG63nJ79yZ4mdz9tqM3bB4jA9crg/bq2LI9cN1J1/LTdp7\nXZ3k\r\n=h8xS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEgYWdNnPtKWgPccWgu4qVniOZYEarN/RkHkwxMNlYfWAiACFtptPiQES+Ot00Hab2A3UVFpE45opiYUqEbhSsm7XQ=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_6.0.1-vnext-alpha.0_1585301222439_0.07833090065181358"},"_hasShrinkwrap":false},"6.0.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"6.0.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"c536251c9b12031e42d5991ffcf2659acd90c8ac","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@6.0.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-u4Cz8wAZb1fT4iaDT37uDdjXUZeTJElQ5n3EV/8z4l9cPTTY2uFjVvW04ZsFWMZ8nAC2KNFo9mj7znv5HpI29w==","shasum":"f346d6b1be61ad9ec990a74a619367d3d11029b2","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-6.0.0.tgz","fileCount":16,"unpackedSize":39070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefcr7CRA9TVsSAnZWagAAEaEP/1YSrROb4vK/kzu0h+bN\nzHAbS/621zfhB5ZwpWTrF3bBFuE81LLr3FberXm03lM9o2OyZU9Sx5+i//0F\nwFAh04kguAZ1kT5uZ0JMtmF9xMhA3i/geTcXMnCJWreYm3ARH3Yd1NXsJJum\n6ebg5ukr2rfn3hS+kYuoch/r1nYRQhpo4yjNaewgICsU4y2W/yz1NwvWmha7\nlYwXTdIGhT4KVJXmFnglWrqi0leeYm469Ufzx52lyj5BKlaSfd4zc8lkCbr3\nx3HD3kemETHmHyvHhBmFz5bhcBmKPrqPwmYnwu+fZOZVHtD4r70pg0bMQupo\n2piuinVvAcWFJZNsqyrcT7A6rFCGDYlkFB2eHh25WXxNK7rv4LZChlzBLlzj\nn0ygwLGZlYd83dVdXHCXXhWNvfSOOU1p8TrK1zRdc3HKCP9GSX0RPkCjW0VA\nvuB6Ju46tdVmF77CwVbBYfwtHs+VCG+zvhMk97yECiMjNvS9YUWAJF+WmW+M\nSsfZeRzFekHnMUlgo5BBGu/+PoKTpTywKOy03rUy+ub1tR7XZGNPzZEKZIXw\nz4qowIdwIsFvkRR4g3TYomfFUs+UYBtIMepuF/sjotg/LIULkK70F/cK0CsF\nCUWWZhsxLiuLM3aLMI9LXyRFy7Upiwr5NI9z4YEcbntmraXL0RBwe94+s/s1\n+KCc\r\n=2hAe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAnBRziKYMw/zi2A5npS9YjOWCYsoaX4N7J1gVJF3eSyAiEA44h/QfdkXTiXguIxQYBn6GGhRpo9A6LpYzlRy+Z7Exs="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_6.0.0_1585302267172_0.47392952807482436"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"6.0.0-vnext-alpha.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"6.0.0-vnext-alpha.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"cc39085b8a10926f13bfe820670eddd158d8465a","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@6.0.0-vnext-alpha.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-H8WcZN0pwJCRLluk6GUliukPz52l6T5x+NPVq1tIK71tuCmbkIFlEb2SaOHtaomVXR8Kg87DiMAw8s8toESyaQ==","shasum":"e33c4df16aa1fb830aeb7810f0e4923f87459f60","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-6.0.0-vnext-alpha.0.tgz","fileCount":16,"unpackedSize":39084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefc5NCRA9TVsSAnZWagAA7+4P/2csCEGf4RsIS7nHyleF\npBsQKowPUKieo1hmUJLzCQT2/M4XW7dS3bHZMFnJ5RH5LxD2IvKTFQ7cVJGb\nM8w292xnaECs99K3G9jK1KTOX4X259cmao9yRrJvSLCkGp9+rCZsm6bIW5SD\njzoNCPAEq+yU0YIuktyrHKMUqxUhycf+IKiiIKWcgr8CRfsKrdig6YCMkqS6\njKLxd9u3ZsM+/iuTtEkiUUmx9zdQDsYjmxqif8oYP4wHvy/W/okM3xT3v1b0\nAUV+FRuJ8/F3QRlTlXlcS6ha7gAl3YD2k47g4+Jq101JhqMbhHx+ivrO/LWB\n9iKyhIACHWQTQlCypu7T4ROsHRsPKQZhN3zM2N7T5VYwlDNBTGU3R6KmOxUS\nT52Du8Q2TGJJX7BE3KirWlbtzSavVsm2EICYsWU37zjz6Ffw3tpE9mw/kM4k\n0nha8VTvGMa7Ew/QIxIV4Ret0HmotU0OINFC4NrQQg/O93R++cqei7m/YXpj\negG6/j39eBeitkGSxrEBEhEexEDO3iR4V1j2q/s5PZ19FjQy75y9puWdw3oV\nsQZnLR1nP6Yq/YyWDBpl6OCcvXl6x/JJ95irjynDGNtYZmzcZBR6rclT1w7w\nTJtRe4NY05LpIflQW91aPwZINeJj3+llsi8Ywr7ziUlw8Rl5hxNauanJiKNq\noujh\r\n=GRQz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGLB4XlLAsaLMs3Mg1+4wAGOw1E7uTMU7hn+aJEaNMz9AiBAQ7Vmzbw2DvJWzoUBLh4txoYtyHuumSfB+PgXaJdffQ=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_6.0.0-vnext-alpha.0_1585303116882_0.8910480256920328"},"_hasShrinkwrap":false},"0.0.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"0.0.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"ad316ccef53ee38f769184ffa4427d56a3733dbc","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@0.0.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-bDL22bOMH9RBs9yjAJ2m22+zRRCtC5OHsJpnuNvzF8z2nLKDABhjL4d98qAFSGn9dyQfbQAC5KZJRnncmpRbhg==","shasum":"dd23f95cfbda850bae3238e29b4dd827cad12f7f","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-0.0.0.tgz","fileCount":16,"unpackedSize":39070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdHPCRA9TVsSAnZWagAAbBgP/ixjz5TsN7zmhhOjf18O\nurwmiBPZFU6vcQ/nOB/voWsjjpdeUNnyldzty1Eux7cPoMNScwGIskMP9Pje\nEyasa9yVRSpgwPqHsPcWPK7Nio0QQb23b66saXBkdKHg3MgItOQgvqCBcPoH\nx5wHLHR4JFP3LAZehKQYaaRMJkfnWTnd5LkOxmTu9rJLZJ+hMfMthha90ya8\ndXTehSsdRpURqO13nUNWW5xYX38d3BV6/JaOpaMEgi6WkXAw5l8LYmBAHOe4\nyf7AsPhHvRWGC7N7ga6F+KzR5Jlp1oNmMSMSsyRa6lHkKXiwq56PoSNaw+hf\nQBHce1Ct10gJ6CXCRL0c9ltRvIAaouUDWBdZDxkXE176PYOyJ0P+cf6uygQj\nas3jVfCNjERVSvIMXciTqtWI1J2dbsBlJ/ae2iXm8QTLkVjYyYz7yjJKAhSS\nwYNPRGHyy+qN87K6cJ3E/OhdiF9xY2UlxMB39kWEvnHREpTYnUpLSKM099+Y\nQY5sfXRepkUNc/xUDXAZFwHKW07A6oJmIDZ4HyJ59BNlXmarFualVrLeSOVQ\nWOO5VMx6pceJxQ05OsWvjsoxpI+1xz9mP8ETbIc1uf5FmU8uGkc4KyPI4BTv\nXkVSXb8zx5AYIQrnKP1zG7IkxAEIdzhfRcSJEHMvLnzpzalNx3HXwti2f/d7\nuPtA\r\n=/jKd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6BesrDjMaYTo8fQc6viL1AgWJlFJLWH/xtJC8D5f9GAIgPk8/h78BOw4nPdIUNYxNJiyQvMtGpbXaVG30k/IKI4s="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_0.0.0_1585304015432_0.23327659143145185"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"4.0.0-vnext-alpha.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.1","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"d64c53f0f8aa0e7e2512c33b0e08738b163234b3","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.1","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-tm4JC/V9XLDLmwp+9PXjgf8V9SW0GmUqzOSgMqXtMOqJd+2/MjdcZRa21aKiDzpiFo6g/Xw8rlhlPAu8HqvLBA==","shasum":"5ec2fbd3677f0322b1fd66d85ab8c9da136b5ca2","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.1.tgz","fileCount":16,"unpackedSize":39526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdUYCRA9TVsSAnZWagAAQrsQAIhKvCzyLum5FOz60fMV\nUqnSofqevoDXPBwVtvku4kI7/cXHs6Et3OUQAnEcoyT7NGdIqMGq0lxo0rfP\n0O6pzvkGjEpi0yMRxXPLoc7sQRzu80z17bh+spJplvlQ1PA65VmoxzjCDPcc\nw3KXCeAYQlVDkXZ6rwYTGTm0l/DdpzkMLbiJ6nKerm3n8JvHDhRBrsoPH8jg\nt0Gv9UbfSzSlrR661SQlwnPARNd7G+rZzHNeeWuVtyRrvug3oNYxLHoVwwrW\nN0AHYezNMt3xttUPxobNA82O45Uwb+lPJ4DDlfxSpCsPjnqPVgHH7nleGZ8T\nJPZdhYqNM2gVI6ex2sGFjS5DKBNl6GKchtIk4SHdHhPGEIc5mwnPo/r3rHeC\nKM2dn1VRg3eh3iX+/pBUOd4SVO+Gg1YZqL/mC0Ql0M8L+oZL9RJy2JQ1YMu8\n/0BAVaDUTfqygYd9ibUpMAKWLzx0J1diHh5Oek7QuDpxDOh1yYH6/HiH96R9\nXPquL9GQIp7BSajhpz2yh56o43jU/J0jKWo/h9Bht99VsuSVKaNHAyJ2mLJZ\nVHkbcpTCtm9J5SS4YnGbZJ+MRU6cpSwy9Ald+VWDhHz8zGwa7iF969H+1G/F\nqIDxdWHkB9hZZ2rXcZutl/AQyftYWfCI9ETy/6FxB3aK/KbVwU1qDDgjuiYj\nfvS+\r\n=Jhfo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRiOm6qYnysU+ZSh8U7O87ZQilQxTZWN7fvBEmRiyIvAIhAOdmLOLwD3MzBUhicx6IIyVD8jGe7RwhawmX+WLr8p9t"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.1_1585304855752_0.1517840560016681"},"_hasShrinkwrap":false},"4.0.0-vnext-alpha.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.2","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"8a9a42dea1f08a3d395d346214646fbb98b2dee0","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.2","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-hGvTns5vokJKV8S6/jAFENTXB7PKzIWamy1q+pr9T7ypI0qPNYz0Jl6L1a+k6n1Wq++DR+jYrjoiABBnGt9jkA==","shasum":"a82f880f216f3f18a94c41e440a7854197a550e1","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.2.tgz","fileCount":16,"unpackedSize":39084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdZXCRA9TVsSAnZWagAA4jQQAJSYIeK62yOw9LjgokNi\n5c0KmXnm/KKriV7ucW6fxFsvLxMfdECsVCDDsreSRpOODk9wWTGsTvojhDtJ\nrMF+sBB+ZMI4wwXUzA99zFfio6ImKKsg3iOMFeVUG34AbYh2hC/5aNe/tYmD\nEcjx+SiQn9/oi3EQn70xEcn7zo2Uh/zWM1HGAIsji76WsfgLspvl6gEXqYjJ\nL0rjGDTTMDBL416JDxgK0WQ/in/rjcEF8tPRbEOx1/59cflWSTWkVOhvjXfK\nkouqcHWoYmtZPSjoHrxORe1SikDXGnldm2OANByx+EC6u1EzQ9nF8R0NbKoS\nTpJ2V1G0gVwf4SaBSCEvVO9qL+DethS7LgxeEbuB8rY0xMTg/PmddJcoxDmM\nunMcrXQLA522mCl8RTPMT2E796kL1WBbiCum0BZAQB1J1hB9VDR6uQXzFVEt\nI7m4a1yOEaWv6Qzsl3JOaYGnxfbapVhX39QKvXvQrl4uoAbJGu89dee/J9Fs\njaXr5noQSMt/+zXJ9S4o99Z+1si0vwrs3mDLcsqD5Y4JDPKFDq/cntQqSBnO\n5jJB9TmnKUWZLjSuBQO1nXQz9l4BjdwTb70VBsVZF56zFW1z5+CMIk99Ffd9\nkaG6nfniUh/K/5jcrwCvxT4tIftrOZQNGGZ8pKGlLt7ej/95iK7ufgsJF+vS\nVAGr\r\n=qIlk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCz2tjEyWkp0B+jsmPC4cY4XxaUk6korpGln7jRhZZRlQIhAIkSFQh/eMewTHISiTo/Qi1omRrMc6JuzDyJS+IkZuor"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.2_1585305174716_0.6090642549485703"},"_hasShrinkwrap":false},"4.0.0-vnext-alpha.3":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.3","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\" \"**/*.js\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"8a9a42dea1f08a3d395d346214646fbb98b2dee0","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.3","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-vUCXISDr1eCJbIoslPO4sX/2y7s5PusL4YIaU7kX5tLOwxRbzLPKxKrJGVD9Yq3cj9jkuGYDanibEv2MofoFbA==","shasum":"25b009d212edbed06b2d5ac9924b2e355710546c","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.3.tgz","fileCount":16,"unpackedSize":39526,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdZqCRA9TVsSAnZWagAAfDoP/AurpKx1pECWXnIQ/Id8\n+Iybs7yuJAB0Q9ako4RceGHD1Q27CLpyJBZw9P4vqJvjW1TVy6EQI+oKroHS\nwCKUOsTWK4qTtKnYj1zenSV/XTyZBovR7P8iBUzgjWbBTr/Eb0twrGw8HBBf\nMP6SQPQd1QyXgdjuXuGdbNeG1KXukLvviIlm35ULNRgi8R1oQGOAABsFYhyF\nnXZSiRE94b37klrSsceG9h1UbMZNcKLcylH53bsKH8XgkDup7bU8U4j02atD\nvOKEcGRpO8M+z3C8H6hbYdQtfP5j2Y5KVew9pVLRUcokosLHKfPrhPqIqJEq\ndaDLT49sJevsfFrzsuQy5iVZkbt19P6udYK2OQ9LAUpgQhMddhKnqhTmYw9W\nYAfKPKnWhKkx6U+K3rDDnSLSRDyPo4t5KMWvP4SjNSoeHWq8NBd5vzgCMfwY\nYGfhuzvbuZGKdoPSb9M6bvCotMHOTdMfPsV1VYLyn+9bC7+Xon6Bf5Mrgb7p\nals5sV69r/DEAlgYPWix7hbktn30XZI6CJDFW7PMAYxTGjm/bMFKiXtrWu9y\n66bEaS7D8yIrI4B/+MQOXaPET1w8ZtxZUwl/RFneBbUCESriSAXGKXrHuF4n\nKTv0PsiB3X6PF09jPxytG0mUFxiaaSuT+E/G4XCcvpn0ZU2kgMgRVY7WwFxn\ngdjK\r\n=60gp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbDgMh2mNw+jznfU2J3XdmdY9poTuYrio4WOxZKTi8PQIhAKBeWJZSv7qwHCifhcdCi6zkXGdGiVIBKQcxilhZJQU8"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.3_1585305193734_0.5616704138334334"},"_hasShrinkwrap":false},"4.0.0-vnext-alpha.4":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.4","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"5b5aeca0f70ea92f3c6190457575f56b1dcd0941","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.4","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-ISgvbp//VLVQVlT4LJkiLJXdIPouWBk6deaYzgPFz/MnhNuQcBogFpTRVqsR7rK38xrojyV339OcbbMmk90CqA==","shasum":"c61fa4c4fdb8fc29263da3b1300db32cb20c98a7","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.4.tgz","fileCount":16,"unpackedSize":39514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdflCRA9TVsSAnZWagAA/PEP/iIc/sb18FCoUmPPBzz6\nFcncToynGJDuhBn+Ig2DemPqqrXDGt4ltooUSrBZci9LRJ8rFMJs2IpcMnJH\noZHXDyAnvEC4oUwldIhRNE6Phh1QeMArT5a5JcyLL9JTf3UUEx58BnVXCOM0\nUMRjQ3p2qOeytLLY4IogzEif7OtRfHJTqZAzYbosKaXrvVuvJrfp6m/qrFUy\nEN/IoR1ArYfrsnLtJX2t3LtqVQB0xJheqmPFR4fFWNAj1oV/y/G6AnG3Z8Bv\n19hZ73DkVNPciZ+po84s8EHLOv76OGMMbLgFR2Voi0E05wZc3dGGNfGO4boy\nwl4k3S4alOow5iexD3zslprIwmijm4lT8EXOqFBxFM+svHoJ0R2reN3mJEtV\n+/uSHSV3iblymexh7s8yyUDEMLd9yui+RE3iqGNgofNw1Bn45kql5GDg9JXk\nJkDprInXwuYN37kLursFk0ELu/9Ay/zGEjiAPsMePg+5tojwN80QxwGzgx0O\njXPb1e8JPJPB6xNb5MmCzSoc51bCW7pjKlNyOhqg3ILbyc4HR3oUAq+6PVZR\nzh5bR5tdGCN4OdlQlk7uf3g4NnjCjZKkksuwpJisRgJvYgsl/u6QSQ1z0cAM\nUTX6AdEo6+MwlwMqE9AEe3+Pi5CnqN3k3qllvNNuD0d4R5UOvueJCniqTWRK\nCk9u\r\n=p85t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk58GLBFluBi1iJwMDwlGSAHPM2pDAcY86qzXXq1DzNwIhAOv6zAWKrn23MvvvRYC8vcFMbTlmX8Dsg/UG2s6Xvg1i"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.4_1585305573332_0.04982921665811224"},"_hasShrinkwrap":false},"4.0.0-vnext-alpha.5":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.5","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"f7c1aee6be579563943453e80775b286c31060fd","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.5","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-UZJRVQTaa9nErHV2DuZ8PKXeHMWorTkDdcovM/KquRHscANbjkvmTdr7V/htbwznpKaLPiqfgIOFedxLWyXd2A==","shasum":"0c39f75b5f168a230f93944a28fbdb57843b1065","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.5.tgz","fileCount":16,"unpackedSize":39514,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefdqOCRA9TVsSAnZWagAAql0P/j6Q3UrcANNQBkIGKrCN\nBeOwiNNKZ6zAJKMima2yFu7x2z/o84Xqxu8X0M1yo/sNo6qqHR8LOEwtoEzq\nbLILSpB1wU1x3e42QNSpp9DA9gGBeaG3gkpv0aexZ//regXLQo/RjW6Th/NT\n0V90TUBPmNaRS3139xju1hoxYBgeuR0I/btUxUpINPdt4j0HgiITUKjmZpPc\n9CTek2TDOOw2LFNHWaILwyTT6T2MWjZ1eZkBwLgMB7ZHZgdybw0HcSgO6DmG\n4VE9VxmPLsiBJvVnRfME6dsY1aSnbfwQWfFc/14RTlV/UUU+/YNSuEIczOAN\nwV6jcpfvxGNVX9RVV8XP7ebW7BqzWI72tEtouFCSNgueWUD5keBxeiZsJGCI\n+LJdLeA4jj/5QUV+yCvQamCKRlEIIW1HxxwClBAOCBpdlIl0boM6lmbgLzq2\nMNA+wkGnUVdvALbYUwIhgiOxfA+L9lm6/5j2sPWmoJqsGaGoNUoYbS7TrBEe\nMSvwKXcs28pd9TWEGKb9t3o3G/+DlSJzYqyaIaOUKzmhXxy3Wl21JsEBY6TM\nUaMADYR6T4RzsbqjBE16D9uS1LOqpE+sB+PAuWJ75eOZA7wJU46fQAR6/qmb\n3DtuvWFWuOrp/IpqaMB1pW9CiLj6NzHUzffIPkkuT1mJeSDrpNrV5VWJw30d\njpty\r\n=5Vmk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF+WOawBVtEtb2gIlXfchh77R7ltjAsZ3Npx+51/f8sZAiBrh8fkukkLqX4/9EHkYC6eON1PWtG589Xh1Oe58Dn10w=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.5_1585306254382_0.7540917144515153"},"_hasShrinkwrap":false},"4.0.0-vnext-alpha.6":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-alpha.6","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"4d5f86d8f6c14a4981fb9e6dbcb016497aeafff0","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-alpha.6","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-ZDAhSO0rSb8DAzEZGmQddGH9Gq8k10FQVu7ZGfUZj8eq7MhgkB+yMtQ0PgZeSeWc/WsBH6UOC6huYXkqj9rE2w==","shasum":"6f5b7dd589f58dc8a8dedcd2b6995a34edcd5637","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-alpha.6.tgz","fileCount":16,"unpackedSize":39072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefd0HCRA9TVsSAnZWagAAHdAP/1Zet/ATeTK/OOssZYqj\nP6W5HzZ5r9TAksJum0lBmSGBgCh8vGOcQjLQiZka/ITW035hb6fBUzeD0B63\neHhzJL4nGn0tev4A/WTwUeLT7NTSfRARGmpyn6Hy+5P2ABc1hzWo78N314PC\na6jbrTmoNY4aBOWBAh6YbU6Z/tFD2hq+kHQTTSsDYMFLJn5HhjYdtn/z/cp+\nRLQJKAz19/T5aaOWqkSyg9iqzobq3DxkKWA1ITYkEljvjyANuC59I4nP7yWq\no6YrVzrtFx7eM3tiYnPvM+Ngl6v8EatH3wad1/LCBdEkxiCEWMFvq6RuJaKd\nPOHPCZe18Dq3ruyXVTyRKNf+69YSJugEY3fp6n5d/giBs+fYdC/PhspP/dD8\nMddqAuJ6UOQbg/b4Hqp3gqbGRxaPgjqiq8fTH2ve/sGTaEtbOxwe5bdJeMby\nBu2Xc8plTsmQJuU5hZbPNB8eFsAl2LtVXhfetUmd/SUSsMSdPSsNh5IR9od/\n/NuM6/0u6x/XqgnqBpHiRYoacXjcDfKvDSQP+p7VUqpUIRn62JqKbmrqI4zj\ngADOGsPCA846q6yeP0dk/X6pbGvtHgJDeLWo9IuTgKDcW06xB6g1tLIdkMw6\nhBxsNhWxcvzPWgJ4nQtmE1YC2zy/b86BwzQmqVcuO3JjTBz8i183KjBDDzFs\nDzGO\r\n=OoEA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/Lzm1SSRU7B+lH/ho0orEBX1SnTOW0HDZmwl8336P9QIgBIMuLP3AqDBuqIpRWH9HjXGjSTZBqUr1Er+MmUxM+ZU="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-alpha.6_1585306887281_0.3073856219308755"},"_hasShrinkwrap":false},"4.0.0-vnext-beta.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-beta.1","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"75274114765ffbc82d212a9a3a7f4549be8970b8","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-beta.1","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-pujbXrr98dRCF8iViuLY/WBAD17uiKD+oHwNcVMQkL9/VVL3o1NBWaO0Ww4itXzW8ZlKB1TRNk2Nd1eeyNlJfg==","shasum":"bcfff8a191db07085e2b24b2f6bc1f2865aebc23","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-beta.1.tgz","fileCount":16,"unpackedSize":39513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefeHMCRA9TVsSAnZWagAAgdoQAJPE2olNb1V1TTuveKCm\nMHJrsufDGwMjIL2JTs+Ozds/EQqA1OzhCJfYuVlv72Yzf30IsA0bM1QpHQph\nL+BlpmL4AwAmbbEsFzwR1AtNUuL+spaMKbBEaumUM/Dnka20tUdXjP1a9xWJ\nuEcUAp/WZwUPg3kOb2PzrYT2JN2XTHyOwFffW6Xt6ptvhsHMJh80k7+DewzW\nU0ASeAPVPWnj3kzD0xKrdeXnPclVoah3oczbQuynk9Y6qhGYtBt3/i1zsvCM\nsjyouszlaVYlWOepWAI4uBjzVRuVkc87us/mAPT2YAWzLjy6efRrPQb7y8wr\n20y41a5PklfIu3qnkrx7p7Tqh/nqFfKSoX34Z5DE5HlVWethtRbg7pNY47Lo\n6Kl1QYAJADWR/AHi7X5A+eOk8qy2NuxelPNhB/66VRSlwNN71O9UAXiBZ/JB\nZJEX277YZp6Nnc+OFMAn1Jspz9yRR0KgwXCgL7V8j+WTz2pT/IZFEqsleKv/\nQl01AodA5ysTgiTB7TqMCbjzKEV0fnUdoHEz3mVMsZTTOYGHWwg8oWDZ6wf5\nWL1o8WgbEGfbRQIFbiVXnyyukCzN5xOo3so2hYe5+UeJQrQ6+SczstizxgfT\nTIx3RYmNnGU50xP7BGNTv2BHDGxgfUoJkLTEMISMy8AZynNC81j4B0AwEKMm\nUrK2\r\n=PtdT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8jGI8R6UTHTRI+nzfDfJP1ccoNcgu897+PYjK8jVWmgIhAJxNQiefOsfiY6nimhR2gkUe1whV6P/fHtvaS+rYkbG0"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-beta.1_1585308107792_0.4305818550382223"},"_hasShrinkwrap":false},"4.0.0-vnext-beta.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-beta.2","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint src/**/*.ts","test":"jest","watch":"tsc -w","prepare":"cross-env NODE_ENV=production npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"75274114765ffbc82d212a9a3a7f4549be8970b8","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-beta.2","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-TLMksmT8xrJudpaQEsnHrIIvO8bwSYV4hD1hOeDw2VGvxKo+Lpjt5JUOqsz4il9sSaqF2zPy+qRaNnvsSApC2Q==","shasum":"249c5056ff83781493a1373bed0baa53ff277e3a","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-beta.2.tgz","fileCount":16,"unpackedSize":39513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefeJjCRA9TVsSAnZWagAA56EP/1gVutytpqY1m88tUG/n\naogh+dqLt41FnTr5lLzpEhwoBEW8+hLQ/llpTU2xznzuYivNnfMZcJuQRUkr\n8REo/YwQsKSoZUw04ruqWVKcZyoncX/DGQ7WThKefEFAb1KMPq804zMrYMpB\niempOmUUY6wub04DjgRtsxhIRAX0vFQbI4If+LSdTTd8vD5ivNvZDom9slpy\nvO+9VH/1JIKckYpFPHF1AGqp0kAZCl1yMYjiholNS8xhZMWstxCZE0S1aSMi\nTQzNRUx+2V6oxY7N7/LYFKcWCi3pweAQkik08KcMLpUzR8VlfEJmSSAxYHyq\nio2refAJwXC1QJL5o9P9kl4+KKSUU4FVUVivmmgVqkZFiWrzkrRpADcAY/W+\n+hsVp9nhCOvAjI0HFropPh9Fo5ZeDD4iGwYcYErypFRik1+wPzJT/GDgypwi\n5ueN9mYHWK+M+Q8GoojgLZBcsnRdQxhf6yHAY6HzQFWA5MmI/kYCmrSb3M0B\nAypgSySE+EXGDifLh2gVL/+nC0H00y7x/Go1MbFI82eSRjdb2c/mdlJfvZhg\nLXsn6EhAAQH3mGsrePkZGosN6esajEkP4+0H0UA5RnIfcnhDlnwrnHK/NE2Z\nT+YS93sUUgqpE2GvMBl9EYNHbqIp/ItQ0Z9qslGf1EatvaHwfeUjlU+IgVBX\nzLu7\r\n=wyGO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKs1X8fYZZD1G2mCbWvw70fNZIv3ZT7/318holGMM5wAiAp3DJIh6WvN/EdvtwkgrUigza2LwfOr7Se9tYyJeTjjw=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-beta.2_1585308259178_0.2789416176597632"},"_hasShrinkwrap":false},"4.0.0-vnext-beta.3":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-beta.3","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"75274114765ffbc82d212a9a3a7f4549be8970b8","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-beta.3","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-6oxU28bB6/teFCfdmswremRoEspiECt7mUdLxtrSR6G+kFoFB2arf+CNpUYIFlJmJy4lN0/sAHLCQMwUrnzIAg==","shasum":"1d1f1530c7cae10612b1196f46f7b8292a8db9e1","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-beta.3.tgz","fileCount":16,"unpackedSize":39312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeffHGCRA9TVsSAnZWagAAaxcP/1/s3f5ggSXKDvNGL3oJ\nvTQdvbNm9MS4TUibRKcAyiKQ/yW83HRMCJOOG9yWqmVf+Ie2acdWVXTVhknO\ndsErkLx7ScG60QG9DyMIaAZmcV2xXQtICdMj0AVT9+kcAPeNU6IeIe3HR0se\nzeOCl8y4WEaj7hwla7mWc52vKiOqfv1TtZk7jmUoH14zduxdPRXaIPCui09O\nTzexjbY//WdQkhOsQxNanTowJGHpdcg4tu9hS0m53ts4kg2Jfdovp7+smF6u\nK3VYqkm5VOKharR+Y9ra7WpZi48rEuBk6CVNV2uzDZn7fiHK6Wk5DOAPe+fi\nNvhXTUkpLDVll5lVE1icLefj64TdVSgtLY5yimZWPllRWuKfdhTlv8leZ4+S\nCXMQ7D68q5aTvMriTZO5hDEblHOK8SDAzCKeCOJ3YZry2UKo9egTtmC8821r\nJ8jhCbbh5DtVhPobGgW9SZ5jC9WW9I8a44S+BGZuayxsOdU630AO1PevIoQw\nvZzhvvVJZTiB7jS6Plvd/0M1LBpMhE9pnr6Zxkz5nOz3acczjBKZAold+OxJ\nSPy/cAHMfBTEPnf74WPUsnaY7n+MywCyzEuhHIAVxs3XrNpgpUrd4yXsZ9vq\ng0MPQibZBZ3DorPalyLqSSJhF2yZOD4miFyXTFENBTEWaPBWycR02ZacZTjH\nqkvd\r\n=bn0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+MJfCr7GH/MLWQJ6SEa6yZ3+srHF+PdkyOzOw7kfa4wIgW0TDbsRIsYO5ixBiNcsOoSdzQUrdjypWS6Wh1yxI92g="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-beta.3_1585312198421_0.6871387642143041"},"_hasShrinkwrap":false},"4.0.0-vnext-beta.4":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-beta.4","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"75274114765ffbc82d212a9a3a7f4549be8970b8","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-beta.4","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-V5bPFxnzGBXEYAE2GjxoqZahkpGwurs6fOF5dNV8TdeurcfiS7TCv5TUTy3iRW9MoReG8Tbynrd4l059+8E+uA==","shasum":"b058ab6fb626abb0a95bb4ab43d9097b641fdc6b","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-beta.4.tgz","fileCount":16,"unpackedSize":39312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeffKpCRA9TVsSAnZWagAAJ2oP/j8ns+4voZsmjiaxQKSz\nVcVE9AUW3KY1Bmlg02KXzvbGLZXZOKPaF4WMXLucf38aqmTBoNtbvdjfuffh\ncmu4oWYei9a2HJvXhae2Yd/k1hH8srZWgLXpOfA9u2sF6SAohArXgjhpAWaP\ns4ZLKIYpefCRC04Pi1gNqGifFpUOSw/4tkBuOIRvNXUiILy8vPfkM1GCo41N\njhyXrn4y8qmbj0shr5hAciVtUEZkPT9lH5jIbGvPdF0YTJdvzQoqgd6tJSPo\n53sFSOFn6kGg5+Lnxc6u80RaLgxxOpOpX28Bi89Uts9SX0NhFD9W68itCN9X\nYruFBCmSQgC8GPBX9SLUSRbOSFkNpYJo31ZJzm//FP9QiRhzChNlnSG4EFTV\nLHvT+jCPg0Miub4F+9BVcGt+79svFk7Un1DB/Q5BGVvPwBYEwYsOGm4Y43ky\nSm/C1nLo3jE0vVr1iFgVEXHPHzg1naKaVIoyfcFKActOWSNHJ32spAFJpVnY\nz5QUr9FnflUvNkHYb071ncOveErfWSApQ8d1KEfsA+sldYkLInRrP7IPoyjp\nv0dffsM6anr1QsaDjjVYydQICxJsQFVEXbQsKPwrG/qFZFe4Ii1wbmtElw5k\nrqktgdo/5dLki6a9pFHNIJcnelfxQlS69jOHMP78Mn0LJTJSpI0C+h5QnDCY\no4ha\r\n=XPNs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/eITOG4ByTK+PUOaB2gMsaxPp23RWUstT/LnUlnitfAiEAweX7n8yvKI3qPVY5LveNEL6p8qgyTzTxYXifB72qGAo="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-beta.4_1585312425383_0.001249787593569085"},"_hasShrinkwrap":false},"4.0.0-vnext-beta.5":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"4.0.0-vnext-beta.5","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"a45b2f1a0144e15ddce385843d64106452dec3c1","_id":"@simply007org/gatsby-source-kontent-simple@4.0.0-vnext-beta.5","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-IH830K7LPj4LUmgORWLdnSbWjZdu3cj+w8zyNdVpGv7TJvFiaUVyCDZrm2ivTFxdRHdX8JpYLCirEXLWx263Lw==","shasum":"96141a7d8f79e0e3e07cf8461eb2c81ae19a5869","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-4.0.0-vnext-beta.5.tgz","fileCount":16,"unpackedSize":39312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeffarCRA9TVsSAnZWagAAyf8P+wZV80bIARX5GC2vyVHG\nXGJbHG+FmEa1iKbTEigXUfG2E79Nxklaynd6YIJoNHVkwgm7foWQVXshk1VN\nIABe3kOdYADGSk0Wv4CVtflT6dA0BCuhooTD6lv47W5UWf+ED3QGfVHtZw7t\nj9iSGQjoU6/q0TrX1maJsIuXO4zgQ5nvo0RzJIM1ovBzQQxZfE2JGTJtdpgn\nD6uc4pRpvsXwe0MjYFCBxrYNoNXEKfbFOPac4jbPxBJuEbdYNmb/gL9Chs/m\nb7QmfKeCPhnx3yoypxwIJ8mo/gIMC22cdi9EEeaLVEKi0wFNNc6TdY+UcVZP\naH0im4AJ2LvUYpRdUQuvA3mSHFBVCXHN6XZVIP2cOv+nyfkVHg30P9nrYto5\nF6JkN3x9QO89qBm0moSB2csBGs3vgTvg73wXmEFV/64yIoAUGyrnomAwcHH7\nCf/jwgXPn4d8zk10BZVSBDvq0hBDMkvHAyytFX7secuJijRDCT90Q+5bhG5t\n0OAZielPXte7K0MLn+2gF/J7rXamQQ2STeQehnMzmSQwXLXNMFDpIoe4Anxe\nsXqb4UvRDM4g5JUzxjiF6QfDrvT77KPcG9mRYYb6ppjYGK7E4n8lA4IaaQZu\njDC2RLcLHntzljgoY4o+wQnBCJMLEmPzSkCIaQa0XLHN0dS2FwTnIJG4QShr\nfQeb\r\n=nFZn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFqSLM7L5WOHtLwgBAiTDZwIm+4I0+nUj3IQ4sE6Z4A/AiA9QqAhjtiaRWDanN+aBb6H7cpKkpeN0gowPMhRGBa1Fw=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_4.0.0-vnext-beta.5_1585313450995_0.024050292236007964"},"_hasShrinkwrap":false},"1.0.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"1.0.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"0c82300ee4b1134abbf6ebf088c9273a9139687c","_id":"@simply007org/gatsby-source-kontent-simple@1.0.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-UxE3qhmvjgjQ6pvf3qaFkNsHijor6eijLYmD9adX6cUZCJmOIxPG8KdPAyZMBJ+NEeKiTcWrpm376Dj639i02g==","shasum":"5bde14593fd0b61a6dafc4cee60338e5c8c88b31","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-1.0.0.tgz","fileCount":16,"unpackedSize":39299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeffrtCRA9TVsSAnZWagAA618QAIk8tSY4wSUaX78PVTnb\nKvdlvh9ElKE+BjAg0M/AJhym6/nuiDyFkceIl2N/EOsRfE9B3iLvMenWSx3F\ngvxOa5Zrxezn/C/VU5t1VQTxzxqZ7eOe0AEslTc3nro6JZaF4rJC24OTLAfk\neMErwy6u/d+zwQpfu3pfxDO3fZzBP7fJP4pvVB3/w3SPzfZ1tPIepYoRBPPQ\nIP2xkJUh3TGKnlPz2TeDTsXH9jy0EVEyMrKAeReLQqR+uwzkQbLx/sas2Tsk\nCU3oYdGpjJIw18CDXVzOAV26qy3cvLFtecfgXCTcUmc3oUfe239JTiG7rb0G\n/QlAMuRzV6qnDqale1/QRw2SvNT6a2qSM1M2BUswdaz5YDOq/Z4aNkhBU2bN\nTwdZao8HdIev1TaxUFR4kgYNwwC959ZlLSUWtU+uXqiEv5q1YsIr9D6sji2v\neAGraeOHXkcQEQPSvF5vBYt27pcp9cFJrKfsiLVXt4jL9AL1Ew3yRWbqrVCl\nK83SFS5Oj3HyXrAKOvrYrvbW7Zfmvj6KSnrt6pjC2gwV9PW3mwmKQC39KKst\nl+zKvpP9uFADYhmeFaAjojvZ5y84WR++vXiSL2oeFAehKcPguwcdAK2jnjqA\nf5FhpMGzRcifb1mnhhSFxmb0a5uRQLvhZKaUtR3dE3wJnMjgWV4JPH5I8LOs\nyq7o\r\n=q7J5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCz67+tX44Up/v7pWHGUSdrBFOfq9YSOmiyjt44+HoQWgIhAInKLL5IzyjzzDNvK00aSkCZ/wL4mnLWdUbkyUsq5EEt"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_1.0.0_1585314540367_0.4190115356105182"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"1.0.1-vnext-beta.0":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"1.0.1-vnext-beta.0","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"dc2f1327b2d01ba1a7c7baf826a32acf139c1dd0","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@1.0.1-vnext-beta.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-BZ1mK53T7R2igdtU97DdstyyYg4Zxn74O78+IfjToTA4s0Uz1yHtTNSVTYJKA6b4veF1QhN5YWkrfOH7sxv+7g==","shasum":"fd05b08fc89eb499283757ae9328741f2a760a1c","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-1.0.1-vnext-beta.0.tgz","fileCount":16,"unpackedSize":38870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefgcjCRA9TVsSAnZWagAAaAQP/RzY5657eWx0lTptSdba\nsbZlXiwJgcsCL0i092Av40+9cV7fcWvGQOTeg1+UZNV3IGHev5izJYIL9/kg\nvrJi6CWQ/EJp/jePJ9mKAvUOEIgwpGevksCTd3b9H5NBmq2zRn1LqMZmmN50\nKLuZc9ToL8b6qWQfvZh6L9+xVy9MMbM65zk8yO78wxOg2Gy3+3H2Ycq3Jrl0\nZYxORF3FggTTAmxdLsnuGgRvU+/JFEcvAlm+rTQeYZQBjFzaenn7EAeVAaCx\nT8ffTHSZrkXxVLN1NCQ+N/RvAHLLPG6AriuPL44ZdszR9Oia+WlyJ0VyRvG1\ni97bjvUWAWolRbLPPp1Xd3FhilJKA0LPCOARClkYgQGAnMe+DNmtfbaelDra\nZ8AqGgPhTOBjJu5mgkaLnISU/buOscwwMIk7sCj3K/KJIG7ZJPrCimM+fpue\n2yFvHc3MkwjdD3u7/JdIO2H5+HUa4lYSAjnvnU3GhyYE//QZ2IGSvU/YH3Aa\n81s3FfqD4gFNdCqtmS1LlwD0Wn1WK8bhOciRbdbUKaRTO9/a9hi19x4vNOsw\nhae+b1Gt0jqMugccyTsfb4qdt8mtrK+Jk8AHHdjo8qXWbj/drUxYRGfm4dQc\nKXxyb3X/v5YFymzHmaKoNW5Awccl69+aqflwmeCuaMpP2yw8hYRvgT1KMeXU\n+/xF\r\n=xo4j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAcIt05meQWOBKqVlgVNXrLtufpghMBkzMiKb7iC4iyQIhAKtpaNNK75W7jweBJmaQ+qHXcaAW6b3Okl4rR/WUkqkB"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_1.0.1-vnext-beta.0_1585317667164_0.6166162588268114"},"_hasShrinkwrap":false},"1.0.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"1.0.2","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"4de24d9ff9922e7ef2c98ae3453b95e908ddcd52","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@1.0.2","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (linux)","dist":{"integrity":"sha512-m0q1jh23YX1YrOj8y3cAbOitinGqKjjAGfXhu7t2YjpZM82fYycgG+IggvFhYlPuxkW4OrlRAHB5Trcm5zUK2Q==","shasum":"db3d9e0d13ae65fa397a7405318d2a2310f9de6f","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-1.0.2.tgz","fileCount":16,"unpackedSize":38857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefjBGCRA9TVsSAnZWagAAvkAP/2YRl7JwejDo03VbIj0n\nqpWktFMUTkePhtnbuo8vpsYT3A8sK6+GbEjST5q97GYUTCSFwbSeoLc6yapj\n3leHV6aI9FXIF/rT4LrW4o/VPfM74xAzgWWaEO+ZC5G4O0n1Z8AVN4cw9C6u\nKV0OjT/QaBlAENUMxyG+3qYu/EYsEA7reRXPB7j8R8x4i0DSQOpDorzNwKsF\nBwbsA2buJdYO9l75x8twZ+lzL7C2jWx+uRpOF2rFw8oXoa/Twwjtoaq2/xUv\nbOHo/wIMONiaKf/MImBccDFxDw2fbMaHWDuXeQkDhq8kUGuCkXeGXyACnFRo\nho0+Qm2hLCxAu+p9uy8Mdp/zBy55LxVeekEKDIEV5/8Jwo/Rqrs9sKHWgupf\nsBYInXLWpks+TCnmmqsEWlkNouacH1fYB69BXxkogNOPvpxqcKc/AU4My9+Z\ne9HKKgP8pHyiAyUbYrI9cIclhf/1nXO0/0iltEHcG3ct3NDs5VcjgAz9S0k8\nMcfmb1xj8oLl0UCbGAVLwB6zjNhgm9JafsSKTxuiFA4/3FLHbyZiLeHgCmRO\nB75e8JFXNVeRxtGyxL1Fr3W+7q5YDLrNW0BIkNAanKTCUdzTk91NZMuIFPJJ\nK1PrH34qF+wBrmGutofSfwym03jxUv3rdH75Fi2jKfoOocgp/omr33Dmfg9F\nFeik\r\n=GZPV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAFujbD9kRhof7DuAJD+d8naZf9dqaxVuDTlTjLYRv55AiA3eeXsMCq0Lc/ax9p+oLdTKT8wi4o5a6rpMpnjAXnlug=="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_1.0.2_1585328198142_0.30061006306721283"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"1.0.4":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"1.0.4","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"license":"MIT","peerDependencies":{"gatsby":"^2.20.7"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"main":"index.js","publishConfig":{"access":"public"},"gitHead":"cbaf527ef5a723b42ca9f5e48c1b16a2ad1c120d","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@1.0.4","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-xScsm/RPCLW5eddU0F/6aNc0pblT3Gz02Dbz71PcdbBC8zZ2xoBf+nOVLu/TMvzx7X6fg6P4mTdjWKVCABKWZQ==","shasum":"04609019ecbc82b3721ace2f1ef9b1261f7b4988","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-1.0.4.tgz","fileCount":16,"unpackedSize":39299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefjFaCRA9TVsSAnZWagAAnPgP/3FWvxI7PLmQjeibkTEq\n7v3BbwJZgG57hjzJZLl19fLrpYuIrXDzxBy1QeN0Qqu6j8ondAApOqSjSwIi\nnzZw4nR1SqSzcXQLDr51FKNZg3O+ymce6/YqOIZbOIrhS6Ipm7xgTpcjrakk\nCIhqH5NAWRM1EvBm+AoByT0zC6zfw+ZVWx3/nN3SUuphdOelhuDqMBwrLFHx\nJAARBuR2Lmqk/MYBlk1yFitfhGrep2ZerwR5h99USvSM/JD3WbqG67BlxYSt\nkZP8V9ciZ7SopQXC/b5k8/i7bXQlDqV2sxQsbcVmIbrnhWuh9yDWSgZ8paIE\nOgUg/Vm7GZz1suaOqIkd215s+r84czXLPDWIbvu5d3R8/RpRWSaTcxeXx4La\nTvQoJkkX5lXyIMApSNqAfy+vOtUtFTM0Fl8ln8mnX4I76s5A5wTbbDqkzH08\nydkWQ5oyZRgOs0hysZxAgt6QuY9yn7Gd+ksI1WvPqp5Vkz3cKms3AjVzJXLn\nQUz1VmuHuPTEcxtqLznNbMgRHO6913J4Ahh+N+Oe7eBVz24eX3BX6SvTM57H\nt3+mZuVQrJV+OhQzYwT0lW6nZvicBByfgU3S7+Ge9b6JCt227QSP/R7C7APS\nhnEFwRJgSmtLf8mwPunJYwX9CezZZPbaLJZnTdXzpUhyJ2lqACj828Ol9HQJ\n5fPF\r\n=RRZM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4ZSQDrly4zD0KbEOzZiYI/GFYcW7LAYmSK+ZO/enfXwIhAIrmDpOc6bUpr3jRRzr9XyhukMrJ/UypwsHpQngw0HER"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_1.0.4_1585328473752_0.5448174487084467"},"_hasShrinkwrap":false,"deprecated":"Package moved to @kentico/gatsby-source-kontent@vnext"},"6.0.0-vnext-alpha.1":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"6.0.0-vnext-alpha.1","main":"index.js","license":"MIT","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.7","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"peerDependencies":{"gatsby":"^2.20.7"},"publishConfig":{"access":"public"},"gitHead":"887fa29b27c4f5e9c3b161a18f92283134a80547","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nTest change 7\nTest change 8\nTest change 9\n\n> Include a summary of what this plugin accomplishes. Is there a demo site that shows how this plugin operates? If so, include a link to the deployed demo site and/or its source code here.\n> Themes are considered plugins in the Gatsby ecosystem and should follow this README as well. Note that themes include multiple READMEs. One inside the theme directory with configuration instructions, one inside the example project directory, and one in the root of the repository which will follow this guide.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n### Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n#### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n#### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n#### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n#### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n## Available options (if any)\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\" // For preview/secured API key - depends on usePreviewUrl setting\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\n## How to develop locally\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@6.0.0-vnext-alpha.1","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-iK3rp08JPjvWIeeQZEwZVS57vba99xsEGx2V2sOvAuQoi42uDpD+rxPRy1bF6SS9c/HluhWs057N2m6FwV/Ibg==","shasum":"b0f41d4d79a48117ef8d28ff4d1e9b17c52dcc33","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-6.0.0-vnext-alpha.1.tgz","fileCount":16,"unpackedSize":39313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefjcOCRA9TVsSAnZWagAAQWAP/RA6W3OgU5BAIy9PmS0b\nHG/rhl2AbUOFZJWqojIVSGLAaUDWWk+5TPRjKB3ZrFp7kTwPH8ZSiWJNn05R\nGoftE3RXBZXtEnA8SrRhrz21tDLbceMtVfhM9WDQquNQJca46JjapgT3GUqh\nMTQNJxMIYniN6n5urzVgU+LU2EU0YGPqYFNB8M7j77Z/kb81Xqqy/ZrGanGW\nzgAnqqgjCYl9M0tw1MIcC1D/b9iFYN/z0nO0VI8NsGtB6Xnr7sK0pqQEMwnn\nsvQUOaGVfaKCZ0B32ulgShlX74dsWA7cR9GE5SpLTf9dO2oTlPbVWrrgsmVN\ninduf6wFWhq0j6vWxAbR0vjWc81Ltn4bD8/WS6EWs2DtcM7XvADv44KEh7dv\nOqgS/nPdWX8y9IIHgLzU7Y/bVgk3zTHj4iF29i/v5p4lySQ9HC2qqMGaX0NI\ne0gUom+gx8JfCjVvINy7z9M1e3Tpk7KvT/Qt61NwDLEEXkUBWC4Cdah/havM\nvA/bqjcm/80E2197Xyc/wBI9lmvbGBxl7NeiCVoXXKamczuKfud574BlZj0p\n3CktTRHEsNwqFPfwLQeeMlSQt6JkG4J7IwOrBL4iFnF0cA1LmQzMV3yVmLMG\nsgMLrEprOyjs79wTPJjtxC85HW/zVVxaNYBcFT4CEt++gwbYiIWPJKhDP7fY\ngunw\r\n=sENl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAR9PrpHxKNSXy/6h6T+OBUanGES1GiicfP7tcgpU82rAiEA33NSY2OndUs42R9Smgq8IpMeXi9PVTiAxGuZXDeG02o="}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_6.0.0-vnext-alpha.1_1585329933710_0.4727171386100586"},"_hasShrinkwrap":false},"6.0.0-vnext.2":{"name":"@simply007org/gatsby-source-kontent-simple","description":"Source plugin providing Kentico Kontent data from REST Delivery API","version":"6.0.0-vnext.2","main":"index.js","license":"MIT","author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"scripts":{"build":"tsc","format":"prettier --write \"**/*.ts\"","lint":"eslint **/*.ts","test":"jest","watch":"tsc -w"},"dependencies":{"@types/fs-extra":"^8.0.1","axios":"^0.19.2","fs-extra":"^8.1.0","lodash":"^4.17.15","retry-axios":"^2.1.2"},"devDependencies":{"@types/jest":"24.9.0","@types/node":"13.1.8","@typescript-eslint/eslint-plugin":"2.16.0","@typescript-eslint/parser":"2.16.0","cross-env":"^7.0.2","eslint":"6.8.0","gatsby":"2.20.8","jest":"^24.9.0","jest-ts-auto-mock":"^1.0.11","prettier":"1.19.1","ts-auto-mock":"^1.5.7","ts-jest":"^24.3.0","ttypescript":"^1.5.10","typescript":"^3.7.5"},"peerDependencies":{"gatsby":"^2.20.8"},"publishConfig":{"access":"public"},"gitHead":"5913efdd3d6d0eb467a1c6979342336379995e77","readme":"# Gatsby source plugin for Kentico Kontent\n\n## Description\n\n(vNext) Source plugin for Kentico Kontent REST Delivery API.\n\nThis repo contains a [Gatsby (v2) source plugin](https://www.gatsbyjs.org/docs/recipes/sourcing-data) that retrieves data from the [Kentico Kontent](https://kontent.ai) REST Delivery API.\n\n## How to install\n\n> Please include installation instructions here.\n> Gatsby documentation uses `npm` for installation. This is the recommended approach for plugins as well.\n> If the plugin is a theme that needs to use `yarn`, please point to [the documentation for switching package managers](/docs/gatsby-cli/#how-to-change-your-default-package-manager-for-your-next-project) in addition to the `yarn`-based instructions.\n\n1. Install the [@kentico/gatsby-source-kontent](https://www.npmjs.com/package/@kentico/gatsby-source-kontent) NPM package.\n\n   ```sh\n   npm install --save @kentico/gatsby-source-kontent\n   ```\n\n1. Configure the plugin in `gatsby-config.js` file.\n\n   ```js\n   module.exports = {\n     plugins: [\n       {\n         resolve: '@simply007org/gatsby-source-kontent-simple',\n         options: {\n           projectId: '<ProjectID>', // Fill in your Project ID\n           languageCodenames: [\n             'default', // Languages in your project (Project settings -> Localization),\n           ],\n         },\n       },\n     ],\n   };\n   ```\n\n## Available options\n\nSince the plugin is using [Gatsby Reporter](https://www.gatsbyjs.org/docs/node-api-helpers/#reporter) for error logging. You could [turn on `--verbose` option](https://github.com/gatsbyjs/gatsby/pull/19199/files) to see the whole error object. Be careful with this options, the output log could contains some sensitive data such as `authorizationKey`.\n\n## When do I use this plugin\n\n> Include stories about when this plugin is helpful and/or necessary.\n\n## Examples of usage\n\n> This usually shows a code example showing how to include this plugin in a site's `config.js` file.\n\n```jsonc\n{\n  \"resolve\": \"@simply007org/gatsby-source-kontent-simple\",\n  \"options\": {\n    \"projectId\": \"09fc0115-dd4d-00c7-5bd9-5f73836aee81\", // Fill in your Project ID\n    \"languageCodenames\": [\n      \"default\", // Or the languages in your project (Project settings -> Localization),\n      \"Another_language\"\n    ],\n    \"includeTaxonomies\": true, // opt-out by default\n    \"includeTypes\": true, // opt-out by default\n    \"usePreviewUrl\": true, // false by default\n    \"authorizationKey\": \"<API KEY>\", // For preview/secured API key - depends on usePreviewUrl setting\n    \"includeRawContent\" : true // opt-out by default - include `internal.content` property in the gatsby nodes\n  }\n}\n```\n\n> See this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code) on how to format code examples.\n> This section could also include before-and-after examples of data when the plugin is enabled, if applicable.\n\n### Dependencies (optional)\n\n> Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.\n\n### Learning Resources (optional)\n\n> If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.\n\n## Delivery API alternations\n\nSome of the data from Kontent Delivery API requires to be altered, or extended in order to be usable in Gatsby. There is a list of them with its description.\n\n### Preferred language\n\nBesides of `system.language` every Kontent item node contains the property `preferred_language` to distinguish which language version it represents. Using this property, it is the easy to distinguish whether the language fallback is used. When `preferred_language` is not the same as `system.language`, Kontent item was not translated to `preferred_language` and the delivery API returned fallback language (`system.language`).\n\n### Linked items as links\n\nEach linked items element in **linked items element** as well as in **rich text element** is using [Gatsby GraphQL node references](https://www.gatsbyjs.org/docs/create-source-plugin/#creating-the-relationship) that can be used to traverse to the nodes linked through the use of the _Linked items_ element.\n\nThe resolution is using the `createFieldExtension` called `languageLink` that is resolving the codenames. [Embedded `@link` extension](https://www.gatsbyjs.org/docs/schema-customization/#foreign-key-fields) is not used because the links has to be resolved by `preferred_language` as well as `system.codename` equality and embedded link resolution allow to use only one field to make the links out of the box.\n\nLinked Items element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        friends {\n          value {\n            ... on kontent_item_person {\n              id\n              elements {\n                name_and_surname {\n                  value\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nRich text element\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          modular_content { // inline linked items as well as content components\n            ... on kontent_item_website {\n              id\n              elements {\n                name {\n                  value\n                }\n                url {\n                  value\n                }\n              }\n            }\n          }\n          value\n        }\n      }\n    }\n  }\n}\n```\n\n### Rich text images and links\n\nKontent REST API return images and links for Rich Text element in form of object, not as array:\n\n```json\n{\n  \"bio\": {\n    \"type\": \"rich_text\",\n    \"name\": \"Bio\",\n    \"images\": {\n      \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\": {\n        \"image_id\": \"fcf07d43-46d4-46ef-a58d-c7bf7a4aecb1\",\n        \"description\": null,\n        \"url\": \"https://assets-us-01.kc-usercontent.com:443/09fc0115-dd4d-00c7-5bd9-5f73836aee81/0faa87b4-9e1e-41b8-8b38-c107cbb35147/2.jpg\",\n        \"width\": 1600,\n        \"height\": 1065\n      }\n    },\n    \"links\": {\n      \"59002186-1886-48f3-b8ba-6f053b5cf777\": {\n        \"codename\": \"developer_community_site\",\n        \"type\": \"website\",\n        \"url_slug\": \"\"\n      }\n    },\n    \"modular_content\": [],\n    \"value\": \"...\"\n  }\n}\n```\n\nThis wrapper transforms these objects to the the arrays. In case ofe image the ID of an image is already stored there, in case of link, the id of a link is moved to `linked_id` property. The query then looks like:\n\n```gql\nquery PersonQuery {\n  allKontentItemPerson {\n    nodes {\n      elements {\n        bio {\n          images {\n            # Object transformed to array\n            image_id\n            url\n            description\n            height\n            width\n          }\n          links {\n            # Object transformed to array\n            codename\n            type\n            url_slug\n            link_id # Newly generated property from object keys\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n### Types' `elements` property\n\nElements property is transformed from object to array.\n\nThis is the \"Website\" type sample. As you can see there is `element` property, which is an object in Kontent delivery REST API.\n\n```json\n{\n  \"system\": {\n    \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n    \"name\": \"Website\",\n    \"codename\": \"website\",\n    \"last_modified\": \"2019-04-01T18:33:45.0353591Z\"\n  },\n  \"elements\": {\n    \"url\": {\n      \"type\": \"text\",\n      \"name\": \"URL\"\n    },\n    \"name\": {\n      \"type\": \"text\",\n      \"name\": \"Name\"\n    },\n    \"description\": {\n      \"type\": \"rich_text\",\n      \"name\": \"Description\"\n    }\n  }\n}\n```\n\nAnd here is the example how does the source plugin transform the data.\n\nQuery\n\n```gql\n{\n  kontentType(system: { name: { eq: \"Website\" } }) {\n    system {\n      codename\n      id\n      last_modified\n      name\n    }\n    elements {\n      name\n      codename\n      type\n    }\n  }\n}\n```\n\nResult\n\n```json\n{\n  \"data\": {\n    \"kontentType\": {\n      \"system\": {\n        \"codename\": \"website\",\n        \"id\": \"aeabe925-9221-4fb2-bc3a-2a91abc904fd\",\n        \"last_modified\": \"2019-04-01T18:33:45.0353591Z\",\n        \"name\": \"Website\"\n      },\n      \"elements\": [\n        {\n          \"name\": \"URL\",\n          \"codename\": \"url\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Name\",\n          \"codename\": \"name\",\n          \"type\": \"text\"\n        },\n        {\n          \"name\": \"Description\",\n          \"codename\": \"description\",\n          \"type\": \"rich_text\"\n        }\n      ]\n    }\n  }\n}\n```\n\n## How to query for data (source plugins only)\n\n> If this is a source plugin README, source plugins ought to allow people to query for data within their Gatsby site. Please include code examples to show how to query for data using your source plugin.\n> If this is a theme that requires data in a specific format in order to match an existing query, include those examples here.\n\n## How to run tests\n\nPackage is using [Jest](http://jest.org/) framework for testing.\n\nTo run all tests, there is npm script prepared.\n\n```sh\nyarn test # run all tests in the repository\n```\n\n## How to develop locally\n\nUse [development site](../../site/README.md) in development mode. And start watch mode for this repository.\n\n```sh\nyarn watch\n```\n\n> To run complete development environment, follow the [debug section the master readme](../../README.md#development)\n\n## Tracking usage\n\nThe package is including tracking header to the requests to Kentico Kontent, that helps to identify the adoption of the source plugin and helps to analyze what happened in case of error.\nIf you think that tracking should be feel free to raise the feature or pull request.\n\n## How to contribute\n\n> If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.\n\n- _Written according to [Gatsby plugin template](https://www.gatsbyjs.org/contributing/docs-templates/#plugin-readme-template)_\n","readmeFilename":"README.md","_id":"@simply007org/gatsby-source-kontent-simple@6.0.0-vnext.2","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (win32)","dist":{"integrity":"sha512-WiBJkQA+QF9/xDrKId9GvOjjObTMd7N28CQusEixDFmDCfmo89vJj+YNRo+Oa532GUZ4Uj4F/Eh3eSHWBijnvQ==","shasum":"c96576bc64e4fab94c21f1c6110a17ee9acc043e","tarball":"https://registry.npmjs.org/@simply007org/gatsby-source-kontent-simple/-/gatsby-source-kontent-simple-6.0.0-vnext.2.tgz","fileCount":16,"unpackedSize":41805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegPk2CRA9TVsSAnZWagAAH/8P+gL5P0BYSnlwubW2/+P2\nTUrTec8BrHrP5f0z/BpB+1FFvku4KbBK876x5mtQMaQYQMwWbiJXvBG6bF9e\neH3ZHVti6JwAgGzp3pgjya823g/vmQvT7oNN7a7cLcOG/ZZbdqNv8tBUoX8P\n59Q6We1Y/dkMrQTmbw9OGYb8ezYRYDJSk5E+lWAmIW1uY3x0XyknUMi0i/qO\nIBj1eF15DG0Wo4qK1FweGs3haF0F4UH6l9+DxbqKAj2xFh6ow1yu/jPaIGOb\nsVpwMD1mRxwjYpraC2CgEKquHiSv7PFPrS8RhhAugLdebVQp/ONRqkMr5FXP\n5Dv8sKt3tMtvMnsLpm6Rij84yKRGDgE6B4y5cy6mXne1RBGPf9iCbuXwulvm\nVdLFtYZ+Qltk/i1qZHpuCKLIEwOTS1QN4XSOdCczz5j/SinSr000AjQ/l4vY\nP74OJv4d+RlsRoo5ran3YFXp4WE2+G46f/KG0/vHM23aUfvXwyMINjC1N6QQ\nxjbFO0EcS/oQyP+MBB4XIfPIK1q/ABD9scZyI2fuNpGF+7l0fXFmbZoM7HMn\nrWsbs84brTsNluA4HcelIDKGS2wBZArS/sUjLRzOvs2Y+cBGqn0g7ECzEbES\nkpXf3X2kcFrlRBLhy7x5mTUem7kupzSM4wCSp6ixPFioGR4x1aPVBZSYddBK\nUr0F\r\n=Ohp7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCePMzuvhxKhZxd9wOZcEC5Hix+csiwg1L7toODSkOjfgIhAOM+qkVzFYHwT3qhk9DE8NKwQirW1Zjddr/8/7b2+QnS"}]},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"_npmUser":{"name":"simply007","email":"ondrej.chrastina@kentico.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gatsby-source-kontent-simple_6.0.0-vnext.2_1585510709877_0.5503432118299607"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-05T11:45:45.202Z","0.1.0":"2020-03-05T11:45:45.583Z","modified":"2022-04-06T23:40:45.280Z","0.1.1":"2020-03-13T16:42:23.998Z","0.2.0":"2020-03-24T09:03:47.564Z","0.2.1":"2020-03-24T09:16:00.836Z","0.2.2":"2020-03-24T09:52:58.031Z","0.2.3":"2020-03-25T17:08:23.399Z","0.2.4":"2020-03-26T10:46:44.020Z","0.3.0":"2020-03-26T11:14:59.460Z","0.3.1-alpha.19":"2020-03-26T17:25:41.001Z","0.3.1":"2020-03-26T18:20:10.260Z","0.3.2":"2020-03-27T08:43:43.638Z","0.3.3-vnext-alpha.0":"2020-03-27T09:21:27.189Z","6.0.1-vnext-alpha.0":"2020-03-27T09:27:02.628Z","6.0.0":"2020-03-27T09:44:27.298Z","6.0.0-vnext-alpha.0":"2020-03-27T09:58:37.040Z","0.0.0":"2020-03-27T10:13:35.542Z","4.0.0-vnext-alpha.1":"2020-03-27T10:27:35.876Z","4.0.0-vnext-alpha.2":"2020-03-27T10:32:55.099Z","4.0.0-vnext-alpha.3":"2020-03-27T10:33:13.841Z","4.0.0-vnext-alpha.4":"2020-03-27T10:39:33.462Z","4.0.0-vnext-alpha.5":"2020-03-27T10:50:54.554Z","4.0.0-vnext-alpha.6":"2020-03-27T11:01:27.421Z","4.0.0-vnext-beta.1":"2020-03-27T11:21:47.997Z","4.0.0-vnext-beta.2":"2020-03-27T11:24:19.347Z","4.0.0-vnext-beta.3":"2020-03-27T12:29:58.515Z","4.0.0-vnext-beta.4":"2020-03-27T12:33:45.502Z","4.0.0-vnext-beta.5":"2020-03-27T12:50:51.168Z","1.0.0":"2020-03-27T13:09:00.534Z","1.0.1-vnext-beta.0":"2020-03-27T14:01:07.487Z","1.0.2":"2020-03-27T16:56:38.264Z","1.0.4":"2020-03-27T17:01:13.884Z","6.0.0-vnext-alpha.1":"2020-03-27T17:25:33.828Z","6.0.0-vnext.2":"2020-03-29T19:38:29.990Z"},"maintainers":[{"name":"simply007","email":"ondrej.chrastina@kentico.com"}],"description":"Source plugin providing Kentico Kontent data from REST Delivery API","homepage":"https://github.com/Kentico/gatsby-source-kontent/tree/vNext/packages/gatsby-source-kontent#readme","keywords":["gatsby","gatsby-plugin","kontent"],"repository":{"type":"git","url":"git+https://github.com/Kentico/gatsby-source-kontent.git"},"author":{"name":"Ondřej Chrastina","email":"chrastina.ondra@gmail.com","url":"https://ondrej.chrastina.tech"},"bugs":{"url":"https://github.com/Kentico/gatsby-source-kontent/issues"},"license":"MIT","readme":"","readmeFilename":""}