{"_id":"@astro-my/swagger-generator","_rev":"2-c7ec038bdd0ef1de60940d91be8358fb","name":"@astro-my/swagger-generator","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@astro-my/swagger-generator","version":"0.0.1","description":"Astro API documentation tool using joi schema","main":"src/index.js","author":{"name":"Rahul Khanna","url":"khanna.mailme@gmail.com"},"license":"MIT","keywords":["swagger","joi","converter"],"dependencies":{"@hapi/joi":"^16.1.8","fs-extra":"^8.1.0","glob":"^7.1.6","hapi-joi-to-swagger":"^3.2.0","joi":"^14.3.1","joi-to-swagger":"^3.3.0","lodash":"^4.17.15","yargs":"^15.0.2"},"devDependencies":{"eslint":"^6.8.0","eslint-config-astro":"^1.0.8","eslint-plugin-import":"^2.19.1"},"scripts":{"lint":"eslint ./src","test":"astro-swagger-generator -v ./testdata -h ./swagger/header.json -o ./swagger/swagger.json"},"repository":{"type":"git","url":"git+https://github.com/khanna91/astro-swagger-generator.git"},"bin":{"astro-swagger-generator":"./src/index.js"},"gitHead":"0f59f8e036b4be9d5cee2ab07511a6b79e9d44ef","bugs":{"url":"https://github.com/khanna91/astro-swagger-generator/issues"},"homepage":"https://github.com/khanna91/astro-swagger-generator#readme","_id":"@astro-my/swagger-generator@0.0.1","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-a7Hsh0wWUklNOtXCMPuracSEAcT3cuWmw9fgPDtnb+ZMbyTdsnqmm2sL5lDkjJkB7gnjSqLiGiWrncjdTVmliQ==","shasum":"640ea2966949a8393d76ae97c9f8b10f9ff8c694","tarball":"https://registry.npmjs.org/@astro-my/swagger-generator/-/swagger-generator-0.0.1.tgz","fileCount":7,"unpackedSize":30952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAG1SCRA9TVsSAnZWagAAXwEP/0EeQwcXMWHS5+Cuidn5\nRW+WwjWfznWaj51l6N00sNs5Hp5ZHw/bPNzp3P8Aayc4WkGGvbN9eBYOj0wp\nA9V/NiELFKN1lbJS7DboYoQ2K5BfiMojk4l9QlTg/hLMKGGVG3AZ1fgnAcIH\n/xpIWYPWHztZ7NIlQ31O1Exn4ApH/WJRtqhGroYmdkJNcB68XlXgJDlPPLoS\neoCErtDFS+f7CgB5nVmevs2zNJL45BHfK7lGRpxcsxg2Tf0vkCdx5wB+XRa0\nC4t0K5KR5nTFKCqE9E//QVZ3CA4XmBuUNLTk8BekTZhGwHtqW4tIYuPREPoE\nL8x370Z2FYioPN+i2HqCayBOeGLEM6IkzV3LIsxle9Ntvxb3gXOytXGsekAS\nrY4Lzpj0XKJ9XVUstwuqedqTOIldcKb4BzyZ4tsbUDY/Fqn2AhE7+hpYZVS6\nJZFnavkJCCCvbmPeLeoJ0BF6Foc1ws3zyN/fFkQbrtegbj9cS899qH98oB8/\ntzDCB0IL/DWKPWsuHCXjlLpyOttX2Gu2/G7ELoCZS/XWvLh424/0Sk489FuK\ndPO25mEgJVkzwhXa4cuvscfGLsByYWPgdMc6ZeIFTZzwVhikW17nfhtlWKU0\n+Tg1OEdHrNAtaZe7xoMjtb52oKTOevQ93Hq2ZMoAJF64+QwRS70jxlTif7nI\nCsyY\r\n=lw6S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjmkmamuj4EUlaI65ZjZmteB8U0u4Pj4fZ+G6qj36oUAiBmNTGDPinbDyGlgx/qnmdPWTAZfe/ZbaY1/piaqzEVRg=="}]},"maintainers":[{"name":"mindeeyap","email":"mdyminde@astro.com.my"},{"name":"dpapamon","email":"dpapamon@gmail.com"},{"name":"marcushew","email":"yen-yung_hew@astro.com.my"},{"name":"psychocoding","email":"rahul_khanna@astro.com.my"},{"name":"stephenastro","email":"stephen_adipradhana@astro.com.my"},{"name":"azanium","email":"syuaibi@gmail.com"},{"name":"ankitz","email":"ankit.dsh.dev@gmail.com"},{"name":"stuti","email":"MSSTUTIS@astro.com.my"}],"_npmUser":{"name":"psychocoding","email":"rahul_khanna@astro.com.my"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/swagger-generator_0.0.1_1577086290301_0.8890741235393942"},"_hasShrinkwrap":false},"0.0.2":{"name":"@astro-my/swagger-generator","version":"0.0.2","description":"Astro API documentation tool using joi schema","main":"src/index.js","author":{"name":"Rahul Khanna","url":"khanna.mailme@gmail.com"},"license":"MIT","keywords":["swagger","joi","converter"],"dependencies":{"@hapi/joi":"^16.1.8","fs-extra":"^8.1.0","glob":"^7.1.6","hapi-joi-to-swagger":"^3.2.0","joi":"^14.3.1","joi-to-swagger":"^3.3.0","lodash":"^4.17.15","yargs":"^15.0.2"},"devDependencies":{"eslint":"^6.8.0","eslint-config-astro":"^1.0.8","eslint-plugin-import":"^2.19.1"},"scripts":{"lint":"eslint ./src","test":"astro-swagger-generator -v ./testdata -h ./swagger/header.json -o ./swagger/swagger.json"},"repository":{"type":"git","url":"git+https://github.com/khanna91/astro-swagger-generator.git"},"bin":{"astro-swagger-generator":"./src/index.js"},"gitHead":"f18e9562fb3d363fae2c398de18744a3335fea71","bugs":{"url":"https://github.com/khanna91/astro-swagger-generator/issues"},"homepage":"https://github.com/khanna91/astro-swagger-generator#readme","_id":"@astro-my/swagger-generator@0.0.2","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-4gLYgoy4TkbVKzZlsgdEWUHH7q2EW1lwpyEnezT93R0+rvJEyLyYLdRUfrooBVyvlI5NvOCTNqhlY+hMwxZSIg==","shasum":"6a144101601d60493f0263092ea0c1954f01f9cf","tarball":"https://registry.npmjs.org/@astro-my/swagger-generator/-/swagger-generator-0.0.2.tgz","fileCount":8,"unpackedSize":33795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAG+ACRA9TVsSAnZWagAAHnMP/jmoPKusGFFljTRVhLBb\n/c4tWXMYZjBlNwI3DGb6QNQquvSzfSbcpgVV139BOuOzXPNduKRUVi1vSV3T\nj7fd4KDF3jceREQmJcZtPeTvP5gTCjMHDVWt1+4b2r8V3eNPOAq6Afip6UlB\nQQ/sckKEavG/Vq7iNgt6o2BxDiWkMMfE6iFk41IjF69kmvjtpJsz3yiAzwit\nY58vcKng0hCEIinZ2V4W8oZytyoelTJmAbzV1mIS6X4NKtsxefubLAIqQg+s\n503RMjS2P5GIGSe2jIO/r3VHDPx4M9XQksST3XbQeNFpSi1HjStHX4CQ6lNd\n3zhTtuDBRu5xkbgt8rWnpQ6NuOk5I0P7d/YK1m52THETkIB5NszidF21XWEu\nDTNOcXWabd/aYSmHwZOULyopExPPXxawB7k+9Ujm911k59S5DF/v7uAy9BpK\n+C6+yQO2ZSQ46qieyWugOpa5lvzHg/2q30Be0/xchmgIT4sy47LTDJQgN6Ko\ny86NrFfKSEfgDNGWR/jbVQhJNiQa0yO5xoD5BLzXJWGUGaT0SfuidF2VU5S3\nqD9r2ahganbdpAYG29V+SuhMsQFe7WLHGUXPbxxS8tRLSiAiphamv+6hGq5+\nMxF/B921F2ODtDqlKRn4YGc30Bx3FKLk5VSmpkpO7k9mGrERfJjYsRevqWYh\nbwMD\r\n=q34S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSMFeiWyu/mgbvJkKNNqgId7NU1v0bGaRIISF7UVej8wIhAM8tiUAJeHZMzYHgHaaXBDM964DYBYgmRUIKmrZBI+C3"}]},"maintainers":[{"name":"ankitz","email":"ankit.dsh.dev@gmail.com"},{"name":"azanium","email":"syuaibi@gmail.com"},{"name":"dpapamon","email":"dpapamon@gmail.com"},{"name":"marcushew","email":"yen-yung_hew@astro.com.my"},{"name":"mindeeyap","email":"mdyminde@astro.com.my"},{"name":"psychocoding","email":"rahul_khanna@astro.com.my"},{"name":"stephenastro","email":"stephen_adipradhana@astro.com.my"},{"name":"stuti","email":"MSSTUTIS@astro.com.my"}],"_npmUser":{"name":"psychocoding","email":"rahul_khanna@astro.com.my"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/swagger-generator_0.0.2_1577086847588_0.6889048241880134"},"_hasShrinkwrap":false}},"time":{"created":"2019-12-23T07:31:30.240Z","0.0.1":"2019-12-23T07:31:30.473Z","modified":"2022-04-04T15:54:33.397Z","0.0.2":"2019-12-23T07:40:47.742Z"},"maintainers":[{"name":"ankitz","email":"ankit.dsh.dev@gmail.com"},{"name":"azanium","email":"syuaibi@gmail.com"},{"name":"dpapamon","email":"dpapamon@gmail.com"},{"name":"marcushew","email":"yen-yung_hew@astro.com.my"},{"name":"mindeeyap","email":"mdyminde@astro.com.my"},{"name":"psychocoding","email":"rahul_khanna@astro.com.my"},{"name":"stephenastro","email":"stephen_adipradhana@astro.com.my"},{"name":"stuti","email":"MSSTUTIS@astro.com.my"}],"description":"Astro API documentation tool using joi schema","homepage":"https://github.com/khanna91/astro-swagger-generator#readme","keywords":["swagger","joi","converter"],"repository":{"type":"git","url":"git+https://github.com/khanna91/astro-swagger-generator.git"},"author":{"name":"Rahul Khanna","url":"khanna.mailme@gmail.com"},"bugs":{"url":"https://github.com/khanna91/astro-swagger-generator/issues"},"license":"MIT","readme":"A library to generate a swagger file from joi file. The output will be in json format.\n\nUsage:\nDefine your joi validator class\n\nDefine the header.json file that will be used as the header information in the swagger file\nThe basePath will be join together with the path in validator class, in the example all url will be /users/*\n```\n{\n  \"swagger\": \"2.0\",\n  \"info\": {\n      \"description\": \"Test account\",\n      \"version\": \"1.0.0\",\n      \"title\": \"Test Service\",\n      \"contact\": {\n          \"email\": \"rahul_khanna@astro.com.my\"\n      }\n  },\n  \"basePath\": \"/users\",\n  \"schemes\": [\n      \"http\",\n      \"https\"\n  ]\n}\n```\n\nYou can install the package globally or just include them in the scripts in the package.json\n```\n    \"swagger-generator\": \"astro-swagger-generator -v ./src -h ./swagger/header.json -o ./swagger/swagger.json\"\n```\n```\n-h is the path to the header file\n-v is the path to your validators\n-o is the location of the swagger file will be generated\n```\n\nExample for multiple validator file\n```\nconst Joi = require('joi')\nconst JoiPhone = Joi.extend(require('joi-phone-number'))\n\nmodule.exports =  {\n    name: 'login',\n    path: '/login',\n    type: 'post',\n    deprecated: false,\n    cors: true,\n    enableApiGatewayCaching: true,\n    cacheSchema: {\n      query: ['id', 'packageAsset'],\n      params: ['detailId'],\n      headers: ['auth']\n    }\n    JoiSchema: {\n      query: Joi.object({\n        id: Joi.string(),\n        packageAsset: Joi.string()\n      }).xor('id', 'packageAsset'),\n      body: Joi.object({\n        fname: Joi.string().required()\n      }),\n      params: Joi.object({\n        detailId: Joi.string().required()\n      }),\n      headers: Joi.object({\n        auth: Joi.string().required()\n      }),\n      response: {\n          200: {\n              description: \"successfully login\",\n              header: Joi.object().keys({\n                          Authorization: Joi.string().required()\n                      }),\n              body: Joi.object().keys({\n                  resultMessage: Joi.string().required(),\n                  resultDescription: Joi.string().required(),\n                  body: Joi.object().keys({\n                      accessToken: Joi.string().required(),\n                      refreshToken: Joi.string().required()\n                  })\n              })\n          },\n          400: {\n              description: \"invalid request body\",\n              body: Joi.object().keys({\n                  resultMessage: Joi.string().required(),\n                  resultDescription: Joi.string().required()\n              })\n          },\n          401: {\n              description: \"invalid credential\",\n              body: Joi.object().keys({\n                  resultMessage: Joi.string().required(),\n                  resultDescription: Joi.string().required()\n              })\n          }\n      }\n  }\n}\n```","readmeFilename":"readme.md"}