{"_id":"@api-components/amf-web-api","_rev":"11-d295d61bcce6b6920aa07d3a43ef96a6","name":"@api-components/amf-web-api","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@api-components/amf-web-api","version":"0.1.0","author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","_id":"@api-components/amf-web-api@0.1.0","maintainers":[{"name":"jarrodek","email":"jarrodek@gmail.com"},{"name":"twoplustwoone","email":"francisco.digiandomenico@gmail.com"},{"name":"lbauret","email":"leandro.bauret@mulesoft.com"},{"name":"carowright","email":"carolina.wright@mulesoft.com"}],"contributors":[{"name":"Your name can be here!"}],"homepage":"https://github.com/api-components/amf-web-api#readme","bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"dist":{"shasum":"fb81e8231625d01eb56348fff610411aa4c9e5a3","tarball":"https://registry.npmjs.org/@api-components/amf-web-api/-/amf-web-api-0.1.0.tgz","fileCount":18,"integrity":"sha512-iqVdw7+i49ETee4/JXxgKoNHU389In3V4uxgjmIjBU37HiveGSGk1JT2BYfQzhwoLzHIJUZom+PdDTAcUW/+Qw==","signatures":[{"sig":"MEQCIE/XFlKccmUcH+kbO9LL8acpjViQkRO+ezEc4+A/wGHPAiAn/rEN35mYHVKwsw590pS4KnUCyu1uN5fK1A2OKQUF2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60242},"main":"index.js","type":"module","module":"index.js","gitHead":"f29b05ed7b1ba55e3120b04b974434d2e43a2add","scripts":{"test":"mocha test/*.test.js --timeout 10000","prepare":"husky install","dev:start":"node dev/runner.js","test:force":"mocha test/*.test.js --timeout 10000 --exit"},"_npmUser":{"name":"jarrodek","email":"jarrodek@gmail.com"},"repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"_npmVersion":"6.14.15","description":"A web service parsing APIs with the AMF parser.","directories":{},"lint-staged":{"*.js":["eslint --fix"]},"_nodeVersion":"14.18.1","dependencies":{"koa":"^2.13.4","uuid":"^8.3.2","fs-extra":"^10.0.0","unzipper":"^0.10.11","@koa/router":"^10.1.1","tmp-promise":"^3.0.3","amf-client-js":"^5.0.0-SEMANTIC-JSONSCHEMA.6","@advanced-rest-client/events":"^0.2.29"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","chalk":"^4.1.2","husky":"^7.0.2","mocha":"^9.1.3","eslint":"^8.1.0","get-port":"^6.0.0","@types/koa":"^2.13.4","typescript":"^4.4.4","@babel/core":"^7.16.0","@types/chai":"^4.2.11","@types/uuid":"^8.3.1","lint-staged":"^11.2.6","@types/mocha":"^9.0.0","@commitlint/cli":"^13.2.1","@types/fs-extra":"^9.0.13","@types/koa__router":"^8.0.9","@babel/eslint-parser":"^7.16.0","@babel/eslint-plugin":"^7.14.5","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-no-only-tests":"^2.6.0","@commitlint/config-conventional":"^13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/amf-web-api_0.1.0_1636170351996_0.6774583755657788","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@api-components/amf-web-api","version":"0.1.1","author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","_id":"@api-components/amf-web-api@0.1.1","maintainers":[{"name":"jarrodek","email":"jarrodek@gmail.com"},{"name":"twoplustwoone","email":"francisco.digiandomenico@gmail.com"},{"name":"lbauret","email":"leandro.bauret@mulesoft.com"},{"name":"carowright","email":"carolina.wright@mulesoft.com"}],"contributors":[{"name":"Your name can be here!"}],"homepage":"https://github.com/api-components/amf-web-api#readme","bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"dist":{"shasum":"8388adc60d60cbceab21c651f0020c808d1d0e2f","tarball":"https://registry.npmjs.org/@api-components/amf-web-api/-/amf-web-api-0.1.1.tgz","fileCount":18,"integrity":"sha512-B9Hp5CuGSHuv73+DnO/3serKR32v9mQcRY7FHV1lOoTvUOsGhDvst4ipBkeCvmgEb7lSQQyqH4nk5d9tpKq/kA==","signatures":[{"sig":"MEQCIAa2DYKRd0dt41ptditmiN+Ow0C08LI5HQEppA+n9QBsAiAg8fF0YQKGcA5CrO5OuYdID5O6ej3pQvOJLKhQ4Df+GQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwyf0CRA9TVsSAnZWagAAmXAP/3GYOj+VBriBL4Zm3bLW\noVHAgHljwbAo2INz42TRw0NkYiAtcbG1JB+VjbS+gjSZrB5hq5+Fso9y90N0\n3GVsqloVpxOHz9nmbB1bWG1Xq1sNinR9nzGDSnPS9RePzzWjVzrm3ELa2Yfy\nydpRVDwljQmCHjNPE3ScamspcDrNYWZAFa8GRtISJVjhXvoDQ0umttuFhjfj\nvwitRNJVHh1wXnHPAv0rW2IYidDd65nn2ZXsXB/sYiE3QQL+eFdzDh2RzaRY\n9mMwKHcDmslGcw18H0NG596ehbcKT+uiiZY0NHZ6jLzBmeJNYwWVXWBxkvto\n4khg5TqIVSwJZKzrud0TvoqwK61WutUO257BYTmkh/70hj9aJYt7SWxUZEPq\nfbv9HlfK1TMYxWOQA8D0MG6rVsEJe0L+TxnlRH8GlJtFuyB3SdEstWlIxDQl\nfLCszcF/kH3ztDgVQguIJBurERBxXKJb3adWPIBpUlShVXCO34NwfU4pYwdf\nnQTUB4VFVpYoP8ujYPhQUv5ZQtv4lc6zJczAhsog9kDYpW7VPG3QYysQCnpA\nnFLFA/R6TTc+DKPi4gqJVTzTo0hF/TUlLe+ka/25IWJx7ExvARGz0Rqe3a61\nRs4V1Zq4Am9oJDdE8AWlXuqaLuu6L6x+QVNVm8Ln5410rTDcdWoubAQfs5nk\nqPm/\r\n=HMWv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","module":"index.js","gitHead":"6c8d95069fc2ee5a54fa1d562d668d883ecd5654","scripts":{"test":"mocha test/*.test.js --timeout 10000","prepare":"husky install","dev:start":"node dev/runner.js","test:force":"mocha test/*.test.js --timeout 10000 --exit"},"_npmUser":{"name":"jarrodek","email":"jarrodek@gmail.com"},"repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"_npmVersion":"6.14.15","description":"A web service parsing APIs with the AMF parser.","directories":{},"lint-staged":{"*.js":["eslint --fix"]},"_nodeVersion":"14.18.1","dependencies":{"koa":"^2.13.4","uuid":"^8.3.2","fs-extra":"^10.0.0","unzipper":"^0.10.11","@koa/cors":"^3.1.0","@koa/router":"^10.1.1","tmp-promise":"^3.0.3","amf-client-js":"^5.0.0-SEMANTIC-JSONSCHEMA.6","@advanced-rest-client/events":"^0.2.29"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","chalk":"^4.1.2","husky":"^7.0.2","mocha":"^9.1.3","eslint":"^8.1.0","get-port":"^6.0.0","@types/koa":"^2.13.4","typescript":"^4.4.4","@babel/core":"^7.16.0","@types/chai":"^4.2.11","@types/uuid":"^8.3.1","lint-staged":"^11.2.6","@types/mocha":"^9.0.0","@commitlint/cli":"^13.2.1","@types/fs-extra":"^9.0.13","@types/unzipper":"^0.10.4","@types/koa__cors":"^3.0.3","@types/koa__router":"^8.0.9","@babel/eslint-parser":"^7.16.0","@babel/eslint-plugin":"^7.14.5","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-no-only-tests":"^2.6.0","@commitlint/config-conventional":"^13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/amf-web-api_0.1.1_1636225462423_0.11879011445559629","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@api-components/amf-web-api","version":"0.1.2","author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","_id":"@api-components/amf-web-api@0.1.2","maintainers":[{"name":"jarrodek","email":"jarrodek@gmail.com"},{"name":"twoplustwoone","email":"francisco.digiandomenico@gmail.com"},{"name":"lbauret","email":"leandro.bauret@mulesoft.com"},{"name":"carowright","email":"carolina.wright@mulesoft.com"}],"contributors":[{"name":"Your name can be here!"}],"homepage":"https://github.com/api-components/amf-web-api#readme","bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"dist":{"shasum":"e13546f3033a88a732bb851a1ee6e7adaff7500d","tarball":"https://registry.npmjs.org/@api-components/amf-web-api/-/amf-web-api-0.1.2.tgz","fileCount":18,"integrity":"sha512-+2m70zrivjNNLh4JtBRr0u3xL3H0vO2Shj44gLb3jRgIaW+xzbsJkRATSw+5yi2+h1Uu9PaJjUDZCUnORHkieg==","signatures":[{"sig":"MEUCIQDkV62KHA0JsdlBNczwmx/IxzetQx7ZrJJjN8q05ejJnQIgStMkrzgzXtt6DLCi0veqK5R+37mPe9w3OFmnaZnmnv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+LVoCRA9TVsSAnZWagAA/HEQAI0yhgrQASdMhLGjO5Yz\nD6+qMLU4Lr3l+P66fCKVEElKLT+RUP536HN0f8EEnQVWYKCFO7nIr797vtxN\n20APl4Je/TitlDZ7zCcs4W3N40XLdejJuDHOCXKfAtdPUoznIBPOymDbyQyA\nNJB1I09FaVEIVeAt7CPv6Lmr99e4jzInTk+CX9ik8DG+CpiHIJOqi2C/o35A\nGuYTUyjQCwWxjIpCiYuSKnfONKUolutLPpXWvxrd3liCDsEPP4dStkC7Nqr6\nbCTWLv6G7prhyJaIdzlwQcGzrd6dbUuRwYSbowHeo2L4cnaaLzOLBvJbrCMW\nmgHAjRsP4ut/pRCf2upgjwqe4tB6cy5x8Rs/w7Jszp3RK8RZ17XugcaUoM6F\nnX1a9RJuFTPzfaRAwNO6AFVT9txgWD7f5JpL+FP1FzknBDQ0GF3O8j81Iuv1\nyp4u4Jh1Xau5tgd8pnZyuEBrWX6d0A5S9jC82Bms3AqPdHBURMIfvEFRPFbX\nIpzvR/tSD/21WmYiVNZm9WR/KhVxciRfdyf9v8s/ft9hAYBBn7u7Cfso2e9T\ns367gSAJVpzke0ZnFNjfzmBWX49bHS+ty/Htt7u5nQOMoVTrliQAd2Qr5xoD\n+N40QX5m1nG9DGK9yAMlYpftJLscq8Q81CMftG5urxLGmxBoXzbqEEQsGot5\njDNp\r\n=hbMl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","module":"index.js","gitHead":"2c10ef3b2ba897176e8b2550fa02fc6104330f59","scripts":{"test":"mocha test/*.test.js --timeout 10000","prepare":"husky install","dev:start":"node dev/runner.js","test:force":"mocha test/*.test.js --timeout 10000 --exit"},"_npmUser":{"name":"jarrodek","email":"jarrodek@gmail.com"},"repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"_npmVersion":"6.14.15","description":"A web service parsing APIs with the AMF parser.","directories":{},"lint-staged":{"*.js":["eslint --fix"]},"_nodeVersion":"14.18.3","dependencies":{"koa":"^2.13.4","uuid":"^8.3.2","fs-extra":"^10.0.0","unzipper":"^0.10.11","@koa/cors":"^3.1.0","@koa/router":"^10.1.1","tmp-promise":"^3.0.3","amf-client-js":"^5.0.0-SEMANTIC-JSONSCHEMA.6","@advanced-rest-client/events":"^0.2.29"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","chalk":"^5.0.0","husky":"^7.0.2","mocha":"^9.1.3","eslint":"^8.1.0","get-port":"^6.0.0","@types/koa":"^2.13.4","typescript":"^4.4.4","@babel/core":"^7.16.0","@types/chai":"^4.2.11","@types/uuid":"^8.3.1","lint-staged":"^12.3.2","@types/mocha":"^9.0.0","@commitlint/cli":"^16.1.0","@types/fs-extra":"^9.0.13","@types/unzipper":"^0.10.4","@types/koa__cors":"^3.0.3","@types/koa__router":"^8.0.9","@babel/eslint-parser":"^7.16.0","@babel/eslint-plugin":"^7.14.5","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-no-only-tests":"^2.6.0","@commitlint/config-conventional":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/amf-web-api_0.1.2_1643689320267_0.9802071679835767","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"@api-components/amf-web-api","version":"0.1.3","author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","_id":"@api-components/amf-web-api@0.1.3","maintainers":[{"name":"jarrodek","email":"jarrodek@gmail.com"},{"name":"twoplustwoone","email":"francisco.digiandomenico@gmail.com"},{"name":"lbauret","email":"leandro.bauret@mulesoft.com"},{"name":"carowright","email":"carolina.wright@mulesoft.com"}],"contributors":[{"name":"Your name can be here!"}],"homepage":"https://github.com/api-components/amf-web-api#readme","bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"dist":{"shasum":"d9b180bb198608df70d40e8a945c01b43f8a645a","tarball":"https://registry.npmjs.org/@api-components/amf-web-api/-/amf-web-api-0.1.3.tgz","fileCount":18,"integrity":"sha512-tE8T2iGKy5l0uOKFSBt47ZD11u6LUZog353L5/aOG8br5+x8JRM6YKpP2D5O5iugYFt3KIMziMtpXFGreDHeJg==","signatures":[{"sig":"MEQCIBmy3gA9QhNx8uWgoKCnNagfFX1SvpTvgiUM8fE6o1cCAiBjuUlP8TcRXKA6ANL0acnZk5LEb44tGieFUvmLRj0xPw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEqIVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoNJBAAhUCvaZlhf8ZpfoDOReXb6ozUb3wEx7cOXuWraWPGzfSKSSHm\r\n1370Kua5aVybkf50Sgxu8PjyQ+2vQfNT66hRaGVGpAiSt28rhSC1O98MfO/H\r\nHS70kpd9iPhJDd0RqzuLt/pcqLWb1DQLsuXa/NmFQ7rU62L40kzy+JLYxsPa\r\nAqSoQUPMu0z/eCpFsgP64R4s33eRT34bk1bycYYPTwhh5ystdpEI5VD0X8dS\r\nlXZOKaKKzRUMWXUHorJ/nU25Cw1oskggbdMPMhMHV9rIEHO4zCCb4adCpfwE\r\nQcdShyhM5FUmfY/md59W4JsI73v8U7nC7kxfzvei5pBzSMBQadxuN/N61FXW\r\nLH3Xnd/iQe+3mzLX0Tm5IkuURwaaFEa6traLfJG9fQDqi4GOnlfh89sk5VFd\r\nRjALuvEH/pr3GJ5tQs3bNhCZZ+y22o4lTBYYg6XnmYL9JIwAWdIxZmozXhy7\r\nqX8JwqOsCAi8lopmiY8cc4+9bvNQFuSMF8eHYa7CnSK0ax0PsbnIgamlwIo5\r\nbdnwD5dcyKXtThsyz2ND0+6KOTC+KR9oMiMGh3cHrS9Yzr7Leib7rvGn1Gnw\r\njdMoQnDYUNKBHJK9aAtAvgun2ti+nj51Cj3/r86xfzc88Ein0MIEruKizl/3\r\nltAph+7Mc5N3umYtb85vG4enqUean/U2RJ4=\r\n=AFpU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","module":"index.js","gitHead":"be66fda2a5e3841f1d1fb7fe9108dce2a6cdd7bf","scripts":{"test":"mocha test/*.test.js --timeout 10000","prepare":"husky install","dev:start":"node dev/runner.js","test:force":"mocha test/*.test.js --timeout 10000 --exit"},"_npmUser":{"name":"jarrodek","email":"jarrodek@gmail.com"},"repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"_npmVersion":"6.14.16","description":"A web service parsing APIs with the AMF parser.","directories":{},"lint-staged":{"*.js":["eslint --fix"]},"_nodeVersion":"14.19.0","dependencies":{"koa":"^2.13.4","uuid":"^8.3.2","fs-extra":"^10.0.0","unzipper":"^0.10.11","@koa/cors":"^3.1.0","@koa/router":"^10.1.1","tmp-promise":"^3.0.3","amf-client-js":"^5.0.0-SEMANTIC-JSONSCHEMA.6","@advanced-rest-client/events":"^0.2.29"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","chalk":"^5.0.0","husky":"^7.0.2","mocha":"^9.1.3","eslint":"^8.1.0","get-port":"^6.0.0","@types/koa":"^2.13.4","typescript":"^4.4.4","@babel/core":"^7.16.0","@types/chai":"^4.2.11","@types/uuid":"^8.3.1","lint-staged":"^12.3.2","@types/mocha":"^9.0.0","@commitlint/cli":"^16.1.0","@types/fs-extra":"^9.0.13","@types/unzipper":"^0.10.4","@types/koa__cors":"^3.0.3","@types/koa__router":"^8.0.9","@babel/eslint-parser":"^7.16.0","@babel/eslint-plugin":"^7.14.5","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-no-only-tests":"^2.6.0","@commitlint/config-conventional":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/amf-web-api_0.1.3_1645388309237_0.5872993333464926","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"@api-components/amf-web-api","version":"0.1.4","author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","_id":"@api-components/amf-web-api@0.1.4","maintainers":[{"name":"jarrodek","email":"jarrodek@gmail.com"},{"name":"twoplustwoone","email":"francisco.digiandomenico@gmail.com"},{"name":"lbauret","email":"leandro.bauret@mulesoft.com"},{"name":"carowright","email":"carolina.wright@mulesoft.com"}],"contributors":[{"name":"Your name can be here!"}],"homepage":"https://github.com/api-components/amf-web-api#readme","bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"dist":{"shasum":"6ccf26ba5d23ae5df92ac69604f80bfee74d0a92","tarball":"https://registry.npmjs.org/@api-components/amf-web-api/-/amf-web-api-0.1.4.tgz","fileCount":18,"integrity":"sha512-OxdQNmTbewiAEQrlwzjTMs7ZjzEmgvemfN/f8jNHthruUsSSG7xJvtrAoU6IO0Cq5vZy9zWAQqX4rePf7UknrQ==","signatures":[{"sig":"MEQCICswmziODYfG2f1hiyk0FMIz7lLgCcKHCDv7YjP4t57rAiBBZCYQNiH08FFRa9PmTULCZQWiJOS/dkHD9rotDMYbsQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiEr1rACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqT4g/8Cg6He07BIjpN2Sctj14qA0kTGd+9fgHGmA5KFcgxMPW8Z/OE\r\nuNWRmN/gwvRhhSWRCjAywGbXCObV03wOYciuciOh6bwtd9UyOEfVstD1BNCp\r\n6xk83OWzwRCLyF35MviG0SiopP6ci4o90F6M05pnrDuhzKmhN9cSekpveYLC\r\nPHX8iioEVHWKYVqXclXfCmiEXDyP+H3cRnPgHnfu46EFzZss3+DOv1+GjPjC\r\nWCxUu2pp8C4Sa2jJXdbTX0eK8i2JyrJjhLzTfRaULT1Zz2F9iYvr834YKxbb\r\nfiUCcMJffqbqPQfFUxtMDYuupk9q4c9471WyX2/OEZoPS538gLtvkP4jlMYX\r\njZrzOzDggdClogWCYNjMxsb0T7EUEuKvAbh5kTFfOS6I2Y2X51Jhu00ZcQyH\r\nKYA3i9E5Bg+gkcfEI7tsUiY8klBpV9A/zgof6XZ7qlOY+3RAtiu3VKlFacsw\r\nrwyyI/Vz2yuoT2WSFArDFUg4IO/OuggwO5u8h4LEW+B0o/Vc6FxcP0+HvEus\r\nzXCY+7LI7i7naQrqLY6C1SJYuG7PEB1UPvKBIqUcta4PKmrxyzU0vKL0q5Re\r\nOe16CozZEHZ/smnGD6fwEVShuLkvzFRb4RjNYf4YRjOO2CQF+JanTCc/h3Rd\r\nLGTUjhHtGJmXCOQCNNqQvgray9bEpbtZqQ4=\r\n=eJVn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","type":"module","module":"index.js","gitHead":"40a05d81c46b03013874f9afc4bca4841652c7ff","scripts":{"test":"mocha test/*.test.js --timeout 10000","prepare":"husky install","dev:start":"node dev/runner.js","test:force":"mocha test/*.test.js --timeout 10000 --exit"},"_npmUser":{"name":"jarrodek","email":"jarrodek@gmail.com"},"repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"_npmVersion":"6.14.16","description":"A web service parsing APIs with the AMF parser.","directories":{},"lint-staged":{"*.js":["eslint --fix"]},"_nodeVersion":"14.19.0","dependencies":{"koa":"^2.13.4","uuid":"^8.3.2","fs-extra":"^10.0.0","unzipper":"^0.10.11","@koa/cors":"^3.1.0","@koa/router":"^10.1.1","tmp-promise":"^3.0.3","amf-client-js":"^5.0.0-SEMANTIC-JSONSCHEMA.6","@advanced-rest-client/events":"^0.2.29"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","chalk":"^5.0.0","husky":"^7.0.2","mocha":"^9.1.3","eslint":"^8.1.0","get-port":"^6.0.0","@types/koa":"^2.13.4","typescript":"^4.4.4","@babel/core":"^7.16.0","@types/chai":"^4.2.11","@types/uuid":"^8.3.1","lint-staged":"^12.3.2","@types/mocha":"^9.0.0","@commitlint/cli":"^16.1.0","@types/fs-extra":"^9.0.13","@types/unzipper":"^0.10.4","@types/koa__cors":"^3.0.3","@types/koa__router":"^8.0.9","@babel/eslint-parser":"^7.16.0","@babel/eslint-plugin":"^7.14.5","eslint-config-google":"^0.14.0","eslint-plugin-import":"^2.25.2","eslint-config-prettier":"^8.3.0","eslint-plugin-no-only-tests":"^2.6.0","@commitlint/config-conventional":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/amf-web-api_0.1.4_1645395307489_0.13732150466034931","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-11-06T03:45:51.928Z","modified":"2026-04-07T19:29:30.720Z","0.1.0":"2021-11-06T03:45:52.182Z","0.1.1":"2021-11-06T19:04:22.593Z","0.1.2":"2022-02-01T04:22:00.461Z","0.1.3":"2022-02-20T20:18:29.345Z","0.1.4":"2022-02-20T22:15:07.646Z"},"bugs":{"url":"https://github.com/api-components/amf-web-api/issues","email":"arc@mulesoft.com"},"author":{"name":"Pawel Uchida-Psztyc","email":"pawel.psztyc@gmail.com"},"license":"Apache-2.0","homepage":"https://github.com/api-components/amf-web-api#readme","repository":{"url":"git://github.com/api-components/amf-web-api.git","type":"git"},"description":"A web service parsing APIs with the AMF parser.","contributors":[{"name":"Your name can be here!"}],"maintainers":[{"email":"jarrodek@gmail.com","name":"jarrodek"},{"email":"alexperez@mulesoft.com","name":"alexperez_march_2024"},{"email":"elmellidiego@gmail.com","name":"dmacias"}],"readme":"# AMF Web API\n\nA node web server that runs on [Koa](https://koajs.com/) that provides an API to parse an API using the AMF parser.\n\n## Usage\n\n### Installation\n\n```sh\nnpm i @api-components/amf-web-api\n```\n\n### Running the server\n\n```javascript\nimport Server from '@api-components/amf-web-api';\n\n(async () => {\n  const httpPort = 8080;\n  const sslPort = 8081;\n\n  const sslOptions = {\n    key: fs.readFileSync('key.pem'),\n    cert: fs.readFileSync('cert.pem')\n  };\n  \n  const srv = new Server();\n  srv.setupRoutes('/api/v1'); // optional prefix for the API routes.\n\n  await srv.startHttp(httpPort);\n  await srv.startSsl(sslOptions, httpPort);\n\n  // when ready...\n  await srv.stopHttp(); \n  await srv.stopSsl(); \n})();\n```\n\n## API routes\n\nSee the API spec in `spec/` folder for more details.\n\nNotes:\n\n- Examples assume no API prefix and port 8080\n- Example responses are formatted for readability\n\n### Parsing a text content\n\nThis endpoint creates a task to parse the content. It does not wait for the parsing result. Instead it returns the location of the endpoint to query for the parsing result.\n\nThe `x-api-vendor` is required and it is the API vendor to use. It is one of the API vendors supported by the AMF parser: `RAML 0.8`, `RAML 1.0`, `OAS 2.0`, `OAS 3.0`, and `ASYNC 2.0`.\n\nThe content type is optional and is ignored by the server. However, it is a good practice to keep it and set the correct value.\n\n#### Plain text request\n\n```http\nPOST /text HTTP/1.1\nHost: localhost:8080\nContent-Type: application/raml\nx-api-vendor: RAML 1.0\ncontent-length: 147\n\n#%RAML 1.0\ntitle: Demo API\n\nversion: v2\nbaseUri: https://api.mulesoft.com/{version}\nmediaType: application/json\nprotocols: [HTTPS]\n```\n\n#### Plain text response\n\n```http\nHTTP/1.1 201 Created\nlocation: /job/64d7ed3c-d598-479c-920b-9d19ed002917\nContent-Type: application/json; charset=utf-8\nContent-Length: 121\nDate: Sat, 06 Nov 2021 00:01:15 GMT\nConnection: keep-alive\nKeep-Alive: timeout=5\n\n{\n  \"status\": 201,\n  \"location\": \"/job/64d7ed3c-d598-479c-920b-9d19ed002917\",\n  \"key\":\"64d7ed3c-d598-479c-920b-9d19ed002917\"\n}\n```\n\n### Parsing an API project in a zip file\n\nTo parse an entire API project with multiple files send a zip file in the request body.\n\nYou can set an optional `x-entrypoint` header with the name of the API's main file (the entry point). When the header is not set then the server application tries to determine the best candidate using some built-in heuristics.\n\nWhen multiple entrypoints are found in the project then the job status endpoint returns the list of files with the 300 status code. The client should pick one (probably involving the user). After the pick is ready the client sends the PUT request to the job status endpoint (see below).\n\nWhen a single endpoint is found in the API project then it is used automatically as the entrypoint. When no files are found then the process ends with an error.\n\n#### File request\n\n```http\nPOST /file HTTP/1.1\nHost: localhost:8080\nContent-Type: application/zip\ncontent-length: 3576\n\n[binary content]\n```\n\n#### File response\n\n```http\nHTTP/1.1 201 Created\nlocation: /job/c04401ec-eccd-45e7-b004-0d2884be6d5c\nContent-Type: application/json; charset=utf-8\nContent-Length: 121\nDate: Sat, 06 Nov 2021 00:01:15 GMT\nConnection: keep-alive\nKeep-Alive: timeout=5\n\n{\n  \"status\": 201,\n  \"location\": \"/job/c04401ec-eccd-45e7-b004-0d2884be6d5c\",\n  \"key\":\"c04401ec-eccd-45e7-b004-0d2884be6d5c\"\n}\n```\n\n### Reading the job status\n\nThe request:\n\n```http\nGET /job/c04401ec-eccd-45e7-b004-0d2884be6d5c HTTP/1.1\nHost: localhost:8080\n```\n\n#### Parsing result is ready\n\nWhen the parsing result is ready the response returns the ld+json model generated by the AMF library. After that the process is removed from the server and it is impossible to read the value again.\n\nThe response:\n\n```http\nHTTP/1.1 200 OK\nContent-Type: application/ld+json\nContent-Length: 86868\nDate: Sat, 06 Nov 2021 00:04:47 GMT\n\n{\n  \"@graph\": [\n    {\n      \"@id\": \"#37\",\n      \"@type\": [\n        \"doc:APIContractProcessingData\"\n      ],\n      \"apiContract:modelVersion\": \"3.2.0\",\n      \"doc:transformed\": true,\n      \"doc:sourceSpec\": \"OAS 2.0\"\n    },\n    {\n      \"@id\": \"#38\",\n      \"@type\": [\n        \"apiContract:WebAPI\",\n        \"apiContract:API\",\n        \"doc:RootDomainElement\",\n        \"doc:DomainElement\"\n      ],\n      \"core:name\": \"Swagger Petstore\",\n      \"core:description\": \"A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification\",\n      \"apiContract:server\": [\n....\n```\n\n#### Parsing result is not ready\n\nThis response is returned when the parser is still running. This may happen in case of a very complex API. In this case the client should wait and try again. Note, too many requests may cause the server to refuse serving the content. It will return the `429` and `425` status codes respectively. See the [RAML spec](spec/api.raml) for the details.\n\n```http\nHTTP/1.1 204 OK\nlocation: /job/c04401ec-eccd-45e7-b004-0d2884be6d5c\nDate: Sat, 06 Nov 2021 00:04:47 GMT\n```\n\n#### Cannot determine an entry point\n\nThis happens when parsing a zip file. When the application cannot determine the entry point to the API spec file and the `x-entrypoint` header was not set on the request then the response contains the list of potential candidates that the client (and possibly the user) should choose from.\n\n```http\nHTTP/1.1 300 Multiple Choices\nContent-Type: application/json\nContent-Length: 125\nDate: Sat, 06 Nov 2021 00:04:47 GMT\n\n{\n  \"files\": [\n    \"my-api.raml\",\n    \"other.json\"\n  ]\n}\n```\n\nThe files returned this way have an API header (RAML, swagger, OAS, Async) and all can be used as an entry point.\nWhen the client choose the entrypoint then it should send the PUT request to the same endpoint. See below for details.\n\n### Informing about the entrypoint\n\nThe easiest way is to set the `x-entrypoint` header on the `/files` request. However, it is not always possible or desired. In this case the status endpoint returns the list of entrypoints it thinks is to be the best matches for an endpoint. Once picked, send the entrypoint name in the PUT request to the job status.\n\n```http\nPUT /job/c04401ec-eccd-45e7-b004-0d2884be6d5c HTTP/1.1\nHost: localhost:8080\nContent-Type: application/json\ncontent-length: 28\n\n{\n  \"entrypoint\": \"my-api.raml\"\n}\n```\n\nThis will result with the same response as with the `/file` endpoint.\n\n### Deleting a job\n\nWhen the client is sure that the result won't be read it should send the `DELETE` request to the job status endpoint to delete processing of the API and cleanup the resources.\n\nNote, the parser process has a timeout after which it is automatically cleaned from memory when not used.\n\n## Development\n\n```sh\ngit clone https://github.com/api-components/amf-web-api\ncd amf-web-api\nnpm install\n```\n\n### Running the tests\n\n```sh\nnpm test\n```\n\nNote, Firefox is temporarily removed from tests until Playwright update FF version to at least 91.\n\n## Credits and license\n\nThis library has been created by Pawel Uchida-Psztyc on his own free time. It is licensed under Apache 2 license.\n","readmeFilename":"readme.md"}