{"_id":"loopback-connector-openapi","_rev":"29-fb17157888abb7d9db50c2b5d9c8b08a","name":"loopback-connector-openapi","dist-tags":{"latest":"6.2.0"},"versions":{"4.0.0":{"name":"loopback-connector-openapi","version":"4.0.0","license":"MIT","_id":"loopback-connector-openapi@4.0.0","maintainers":[{"name":"rfeng","email":"enjoyjava@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"169ef0f9682c1a9182a66891d4111a5a8624d8ef","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.0.0.tgz","fileCount":28,"integrity":"sha512-ICvS++E7ZnW/8az0+pL6qzBN3v8OGzbTGoNQL+RBGMLMBBZBMNl5CRL290/QuAAzjja8jE+k+jU9NVPbGcGc8g==","signatures":[{"sig":"MEYCIQCgn42BBQGvnwT3slw32doljBkAV+lyFZg+FQmtp9LgZwIhANsqkYkd0OErU3jTjUtWy1dPG92j4ELBdleNcbe1UFO6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121910,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsNf+CRA9TVsSAnZWagAATugP/io43hi8KQ8f1bfNVJsf\nl/JNBZcumF8dBdACXOt2oNal5amyhL44I/h+nqcFsc/dvP0ne24ahPbdiI0N\nwm9oBvGOx3EtLTA1ZQFWk1HhXRiDe7WTpxGSVL6ynx43APLazWI/Jbk59RmP\nBMQkP20gU7Z1GaXTu/g/Wqr0UoxytP39+dem0H+a3NqV3HZZ7CbirF7ZErWq\njNunAcP8C2oVvW9S5oj+5Ig9Y80h25moS5K0m3NMqh3DWjsqXiWkQ9xUzzn1\n7jeBj/ozHHOnU/bPw2roFTC4i9c+9ornVlrP0AMXqz4c4UcjgeeoOsyyFdCC\nOvWsO/vyD90aA3Z+HjDrqZ1hy1Amfvp5q2LUymge1EW9pVtUuQ3mxtSpxSME\nKwpM5/VMJ7KTOgsu1p5C+6eIlunzn8A67Rmb1pEWL0NJRVATBE4yRRzM3qN4\n8qg2U38j/8ceT04bvMaLfu528lYJq10EQFV+7+6+hJc9LWzZxRYiBAC19HVw\no3riNpLz8d5iJE8VFvjvfPY5DV3OLLl7014Z2yM2/DR5Tb2AslUexOesXYmc\njJqUjEnePIsw+wvEJOE5XEFIBWBlfN1L5Wuk6/4X1RPwK7jkNloLwhb+ZpJw\ndmCD4Ui0r5KLNSSpxU4SOrTwviEwipMfsKbF44nRInvJaz8NJVBqTmYjV2Mt\n5ru7\r\n=VRp+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=8.9"},"gitHead":"c4a30966e315c49540ff1a45b75097a7b874b2f2","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.9.0","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"10.10.0","dependencies":{"debug":"^4.1.1","js-yaml":"^3.12.2","swagger-client":"^3.8.25","swagger-parser":"^6.0.5"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^6.0.2","eslint":"^5.14.1","should":"^11.1.2","p-event":"^4.0.0","loopback":"^3.25.0","@loopback/example-todo":"^1.5.1","eslint-config-loopback":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.0.0_1555093502121_0.31474947560697797","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"loopback-connector-openapi","version":"4.0.1","license":"MIT","_id":"loopback-connector-openapi@4.0.1","maintainers":[{"name":"0candy","email":"ngcandy@ca.ibm.com"},{"name":"b-admike","email":"binadmt@hotmail.com"},{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"kraman","email":"kraman@gmail.com"},{"name":"mahesh.patsute","email":"mahesh.patsute@ibm.com"},{"name":"qpresley","email":"qpresley@ca.ibm.com"},{"name":"rashmihunt","email":"rashmihunt@gmail.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"superkhau","email":"superkhau@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"1ceae1fa3d65649522e9f8f60a1eda650ac4fe71","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.0.1.tgz","fileCount":13,"integrity":"sha512-QvE7hJlqX+n/YMcsGE6mZk1/ovmSf6fDeXPc05QDh6/9DdLlj857JZutaTNtDT7E2YdV9tazfV2ZZSAmUazLNA==","signatures":[{"sig":"MEUCIEq2wiNQm9gsrBMk7MwpmanbFjAIthB9jsEGGSrNil2IAiEAoRyfF0F9goZdzqDgQEPObbhIr/lIkg/CykFXfbsz4HQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsNi/CRA9TVsSAnZWagAAshIP/jSd14VrKNp8Dv425QD6\nfZaPE4Hmjz7pX6gnHb7mVqzGmYrJryaVZ1Ht3Mpq/ugW34qx3d59OjM7Zixd\noCVVZp76MNrwE0gk8wnKyIylIAaTnbB5Gsi83dz30lQWg2zQlX811KEg85Hf\nJAGw3701wNEy5q7rPv6+YPLwYVbvHxJjk+NC9LvXkSV0HYtwH7MyIuZcsC+2\nyRYZ7I0ZGdOrNvR7vJ/Xuall/ocBVEk4UFW7qWDvaD8SJMeUvNhUzwdR0NvA\nN6u4izpvFLUQrnXBnmnKpkVBbqx87175Tam1GLu16drtv0fNhHhW680+7bkO\nFVKsZKlxSznOZaVChs9RpIoJwG9RIzov4b0qt4CYdwaLXKc6EcJqHNl+DFRq\n/fMSLN+HyQFCRX5zEm/3oRJZLUUc2hLSBGhsejQj751/PjLYURM/5t1dCFLv\nnCUCeTp/O789GH8iY2ZXT1xUKhDLC1jiYStB81vC016EYS98nj3J6yzo0kUs\ntVJgypfJPJHXVoKx5eTI8FWZ1DFDxJZai/6oX9h2rsPvNZqiXsAKsptXDR9j\nb/q8MA3ByzcXaQRyGFqlgPKMY3iR/8eJ6KqjcYQIAmCqSR2QgKWWFq+liGAh\nStNyMu7Zx3tjoLqo6WzOFPSu72Bwi6DPI5c/+WW0nwmgt4GZmp0ohJdD49q2\nxFWP\r\n=S5tk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=8.9"},"gitHead":"96b9dc14db785f31103c07f3cedf787e0e8efce8","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.9.0","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"10.10.0","dependencies":{"debug":"^4.1.1","js-yaml":"^3.12.2","swagger-client":"^3.8.25","swagger-parser":"^6.0.5"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^6.0.2","eslint":"^5.14.1","should":"^11.1.2","p-event":"^4.0.0","loopback":"^3.25.0","@loopback/example-todo":"^1.5.1","eslint-config-loopback":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.0.1_1555093694829_0.33552523319075545","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"loopback-connector-openapi","version":"4.0.2","license":"MIT","_id":"loopback-connector-openapi@4.0.2","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"1d8b0e2101acef6590dfbe1432a0cc56c7df3306","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.0.2.tgz","fileCount":16,"integrity":"sha512-A8AMd51gjJbRSci5+pwagiGBI4U1Ay5k66HqAtCyG2eGHqD51ey4jWE29ERqZlNP8soXjuCuK+2p6wyaVjitmw==","signatures":[{"sig":"MEUCIQCIrx8+aR0Qu3GbgxSupB5EbnXJE+/WwbwdkUxD3mkvEQIgImeRonDWqFT64pzvw9xT7MM7LMHmMacuNRcqSWc9pX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefm4eCRA9TVsSAnZWagAAd1QP/0M5aSORiHeRUThZkDg5\njOZN5hHbsaVaeVdNEYi8TJjd4/N1yw/qC90edTgn+hoAj4Wo6Y/aNY1h6GI8\nHPlA53tUY3jj5b0RaIxbLlwtqWB2ppci/5nxcRua3sv+LBptNfMUXBIxKJE0\nhT4RJW893/1yu5p3hABPwUJeZFI695J8p32I+GQXwigqLUffJRqVwivGONzE\nWNhVqGp91gTpgH2fbB/e7vPEwOtw9LmT2b2Hy8qdXpncHbUMQuoHTgLh2bjP\nZ1WbQbWX2/lZZsgxdVw0oYKVCcgbVt+h+XwhdVZl+SeY8yGch/xzAnp85jkJ\nulm+rsSaPoyBux52EQoDXC/WgZMX3jofmhhNMvQo+VbTf71uG7uKSnSzvdCF\ncXODH5Wm/Kk8ab0vRcHnBBfFhNGfVtgUvPA6JL3AZ48yFJ28UuhRGQLBy4J9\n6B7pM0DxLrI31xRW80uC4JqXDaZg5R9GcN81Si9TbtyN5GsgNz7k+nZE1YSl\nLgFm6gNsaUihOX4UAJ8E3j/3uIKUl0nybZTi6gVoT4+6LrN4G6QTGJkwTvDA\n8cMc1IWc04Dy11Tujlq67HVCx+Db9eG2k9QrsHMIBzVDWnGf5ZE2sxvGMqQE\nHbx8HsoEtsPzU3yHFsztqIU9stranqobTgqlA19UtCIG+YhdcDsHjK1A3DqL\nmqVw\r\n=NFkN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=8.9"},"gitHead":"fe77aba6d282d73b6ca736142df1e9a78dbaa4f5","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.2","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.1","dependencies":{"debug":"^4.1.1","js-yaml":"^3.12.2","swagger-client":"^3.8.25","swagger-parser":"^8.0.4"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.0.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.25.0","@loopback/example-todo":"^1.5.1","eslint-config-loopback":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.0.2_1585344029657_0.6161622608683299","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"loopback-connector-openapi","version":"5.0.0","license":"MIT","_id":"loopback-connector-openapi@5.0.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"8be7b27ad808eda9fc688a2cfe557a3873dddee6","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-5.0.0.tgz","fileCount":16,"integrity":"sha512-bGCyZFjwwmXH2iYubbCt22tcZ/K8yMKTJB0OGwU7xIQtzkpShERcciS5sWPfUc+Zb4mqzpF6YCHIapo6PMawLg==","signatures":[{"sig":"MEQCIHJ7c+UCMpiQOn6QpjlPzrwJxKT445rodeBnbCLwK36pAiAUZFZ7XnJQJ4sqUEpyLJUJzLM6jy+1WEpjiFx3kaTftw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJek2xcCRA9TVsSAnZWagAA/JMP/2Jq36KRQWRIjLSj4e3g\n6XQmURkhNx76RYJxMSwjXMdmfxnYuKfUmAf7rWDQ06Djk4zre9D3YuF9WwRO\n6Usn05evZFOX/l4fJJ8P2N7HVetEMIjJajfX2dU1YUodaXCUEC1UqBFAYj48\na3OQ1VuiLPczIVY6UPC58wa0ohA5HWkYV/Y0sGuLb7DHCkXe7Zz9dk0XrNT7\nx+KJIXuk7W5v4ZU2WqYB5meaJDPBVK1L4lKGsJK9XU21xKJ0k6sD72rLJJ2O\nFRG5csx7NwYvZ19uS1eQ9JchiAl2XGZ7fRpHZJ7NXffjOlF8+MTaZKMo3Vjo\nebWzaVfmKBt8vjoKx/u/BpcNJuShzfqfNRVDF1cg+duNI5SSTM53JZh3SU71\n5cm1slX2l1NIYbB6FLWC6XYXjmSmXSxCAk9bEKmnHRvvwv+SxrirZhR30xip\nXRMg7Lo0ZOjVx4wLvCCfXwczs1ylQFEw+aGUiSTcq/iRQATW6wKNEaqsY4al\n5vGJitq7XdGl/haEuSBQMHgKzOXOcWXmlYziwhGR2i9W3X59frdz7j9n3Cxo\nnrP3g/9EwSYwx54K/Fq88zXSbkxvF3y7Fe8q/TM8tTl5g48ykRLqr1bssRbM\n+hZE+TSEeHfu/og8FNS947UMBdz8JjBpWuLri3GH32NCiwtSdHM/SXcdnpVQ\nbYSg\r\n=6TTA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"8563f19ee56bf9c2fc9dfb700f7b869d4149e914","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.4","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.1","dependencies":{"debug":"^4.1.1","js-yaml":"^3.12.2","swagger-client":"^3.8.25","swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.1.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.0","eslint-config-loopback":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_5.0.0_1586719836223_0.7938010804873972","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"loopback-connector-openapi","version":"4.1.0","license":"MIT","_id":"loopback-connector-openapi@4.1.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"82281d2659688a135b2882a16e9e6509264a9917","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.1.0.tgz","fileCount":16,"integrity":"sha512-NbSkP870pTbagSfBpYJm/PdluQkFi17QFlCLuFK9H2IQOdCy7psqJsXCfaNuiUTSv8U4DM0jEx4Jfugy+mOxjQ==","signatures":[{"sig":"MEUCID2mzuWFKNQ//+o6dL5CYr5lHFD1FrOhwnOiBiAU1xJYAiEAurrYYB5qRj1cZdpla81tDb2odGnzJ3YBCIekqxW1KZc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30629,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelonyCRA9TVsSAnZWagAALO8QAJwKcfWiM0Yt4WsrmLX8\nJ7nH5kde7DjN7sdYF58dFr07qrP7lf0MuNbcIpGdqvye7V9tib+/t9XgGRfD\nqkfx/8LZIDOwqOQ2bi3ZNkezER/Bcyfao1fMczVane5KGQUV9ts+GDqkHlRM\n13fZT2rdfIEqhSn6DXJnKwX75rs2NWbS/uCB+G02SdV0bjE9rn6viib7QtxP\nl/1i5mc6Rp003WbOuM7R3u1838MzxHg1Ja3FSPHEfIMNvSe8OBm7czIflvtr\nfIYPyhDIjDMpplWxgjsGLWgmlsuxNre+F1j1d+Q1IwKgpqU17bbYw3u78KOj\nWn2MJN6BnTn5Pz3vmP2PeIZ1PaP840dEOmjlkNHF7vr4xPIsATRzzbusodw4\nrwTg4ZWdF7P3VNmuFDsC24XeAvnFQJ5Zui0xLlwUFc8IzO+mbyW1k9ABY42x\npH9+d1ClVhhxUAMIByNT32HYzadX2Ae1D6peb8itTG4touLe951Pt6U4V0Eh\nui65RiI6IN4RXk3XWHzq4r7XsAdI8vs72CUc0T5/PYqjTcCOFRO9HCfz515A\nCJDWbKbFNe3pgjKhTr/WB0AFcSlHS/r2VRtSSx1aOHQOR4CnkfR1QiwaLpZb\nIlVd4qk1Rw5Jvoi9IowvbYSmNjKD+C+3/87XAbHLrcX0tW9Am8EAq9PtbbKP\nJFPd\r\n=bWX+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"1324066eab6d7dda1c237dc4313f99bfdc281f8a","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.4","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.1","dependencies":{"debug":"^4.1.1","js-yaml":"^3.13.1","swagger-client":"^3.10.0","@apidevtools/swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.1.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.1","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.1.0_1586924017369_0.34052414530386943","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"loopback-connector-openapi","version":"4.2.0","license":"MIT","_id":"loopback-connector-openapi@4.2.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"deepakrkris","email":"deepak.r.kris@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"e831dace9e451535d39a2ab253c322d6c08ee811","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.2.0.tgz","fileCount":16,"integrity":"sha512-7hmdOrCtlXWHHwZeDRvVjZItyI1pkT96RAbnUO8QYdwAkv/a4W37tPJjFezQ0q7v8xAwWciwIVHEyQhEqE9HcA==","signatures":[{"sig":"MEYCIQCMK5sCKZCG3rUQRygbfgylwAr9Gb9qgEzwq3Ymkn2SEQIhAKdi3G0MazmnHqW+jfZUVa3Sdx6oznZORRJMLowZ+j0r","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep7jICRA9TVsSAnZWagAAu2kP/jVr7oHcjPUcUlhIiE7I\n4MyaARu21gzDWhc4Hwtr92mEvMMbqB+8n7kNKqwL3uWR6UUu+7GhOfKhShZP\nMgojbuB+7qsZPmeOd22JlkV71vfidr1Rd+8gQ3KIFtjiOcytIno4W+GmvXGw\nS6nmqlzxSs/X9Z+yh6wYS5N175LYLfPGUdsO4Cg84ni/sDIaCg6/qFGYMqQa\nUo2sQwLAwTXKVyAZUFq2MXbdwEvjbzE0m+w8iaJQ/p6on2S2QZ1owQsoqJXG\n1Dr4g2UZWvkObIi3HV+e6PuoyY9ed4k20QP60YiBih3DjzltgBwAicDX0uwx\n3emKDhyAfd7+lur2qH6Nx7+qCsKM6vpLnG52MB0sbYgAcWeXjRf2Z/NmH972\n6uQzRJxdjJ2soi3AhY70aBZUFOCSrEuV/tdaU8A5twZzMokQjRi4J4OVI58V\nBtiQccX2AI1UY2yy1NDqeJZnQbcFwipEUMNThRF1XqNtLWWIAMPt0fAQ57mN\nEPDh5yPSBHKMmmwik6I52esggLHlc3EgFDk1YFEzoxhN3iiOle1f7YeP12/g\nVt4t4yBOzMV/cIoUOSFBRRExWdwY97i/nKMuQ0Ky7eCa8UmyIcZbNT1cLh2u\nKoElXUSBWEtML4IgBLnec4h8vF706iHKS4EKRI4y1V3oFro1oSFG+Lvx7vgb\nO8Or\r\n=nZyl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"c61853ec3b4b0c947f2790a82ed2cc3439da6b7b","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.4","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.2","dependencies":{"debug":"^4.1.1","js-yaml":"^3.13.1","node-fetch":"^2.6.0","swagger-client":"^3.10.0","@apidevtools/swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.1.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.1","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.2.0_1588050119966_0.5145530673603598","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"loopback-connector-openapi","version":"4.3.0","license":"MIT","_id":"loopback-connector-openapi@4.3.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"deepakrkris","email":"deepak.r.kris@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"e4d53ac06af29ed90d91aa2e70a98f77d9e97d4e","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-4.3.0.tgz","fileCount":16,"integrity":"sha512-hALOlknYOMDaxn3/+Hlo8Jb8izng7XhKlkWhnn7LcEzVOTlrWeFmzAxnXSjHcd4HwunF96qL2JFAS67CgJi/1A==","signatures":[{"sig":"MEUCIFfmK/n2hs35CGYJTV9em/5b76GPS1I26shOn9lQWL/GAiEAl3cXRKucHGYQmF9SY35yHFJsco9pb4BDO4mQPTkZ4X8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36403,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqJCdCRA9TVsSAnZWagAAAu4QAI+Pcaph8UUn+zn5dupl\n3+ZUGmkKY7PGQnz9iSXHuBwekKvnLLrUizPlne/Gjn49QxwtOYhGX6mJxVhD\niOTTAKSubDQDdp/KdoilBMkHQkw9eefpY4/Tti3UmkOLSSZiPJpz5D/A1Cs2\n05kUBtGRopcURAMs68RNdvTYOACvhXVXdn0kof90Y3lcCm4aHEy1n8iPkl3Y\nrQm6pTYFPmMagkJx6wgyGc6kD2JaS8zPZ+bMeipGPU7asTcAbnC+YDLQ9+z1\nJ+GWvHPbYlFZ8AUBbjoRUQryS7hX0UV2GR8K5+SoqynMEcuaeFLRS2aKLs7X\nRS366p7J/5mlGzi+7CAwTUsNHE9Zy4K4EMY29aNxyan4xYcef+xEwq0SljRw\nH5pLrTiQs00nik/MXxz5YO998dWrftUfbTtQWLt2xldTf9+orVN09aNBTNdG\npBYgB8t7PbW4uY1BMbX6k3fJavVUlHMuNk9nAOvNF5BNEAAg9OuQ4s2ZxV3Z\nDalClOBppCzPj2mBADAOKAdiseixuQX74S9Fvf0UuIjr4L85LaufZylFJI1C\nNwF6Qr5eIlg4ilTSvdV9Uk1Ke6uuB/4GkTXa9ZqYyOKJelocSKfjF1f2izw3\nMOlkwToSbjbQcL08vUpdZ+tJdERrvV4espjJXzbwPK3HDacghPoZ8J2I99j0\nguGl\r\n=67vn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"5f8451cf19215bda72acfcd3077ef67c98d06a48","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.4","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.2","dependencies":{"debug":"^4.1.1","lodash":"^4.17.15","js-yaml":"^3.13.1","node-fetch":"^2.6.0","swagger-client":"^3.10.0","@apidevtools/swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.1.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.1","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_4.3.0_1588105373313_0.653090204220335","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"loopback-connector-openapi","version":"6.0.0","license":"MIT","_id":"loopback-connector-openapi@6.0.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"deepakrkris","email":"deepak.r.kris@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"fcd53a43f49e1fd2dcf298f2a0f986ebc348a406","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-6.0.0.tgz","fileCount":16,"integrity":"sha512-VGASzVNR9wjehr1IYg8IRAMrFZjOlmfqdwc9HzWuFfojLPzfdLlw1iqC0aDZPbhcNe54wN3QCXsCDu75IC24KQ==","signatures":[{"sig":"MEYCIQDAcWLm4Sn0SG+J1H3xV9SsaZoqcwoD+9ffpuuGcxz9MQIhANTfgxv99563L/ybvo33R3xfUi3Mp/R8EnJlj+n4jQP8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqPy6CRA9TVsSAnZWagAAWIMP/0R677pRDnZe5uyEXPwQ\nbbPD9TvmQQnPISAdpb5U7Jygq5+8sxBUvRiiPXdTUicaXM0PwVf8lC/+dJm1\nftdslgXk8p8fu6SgfRe3kvNKjDYwFmRmd7hLo+BBIESGv6+wwjTBqAUMQxoA\nz0ksLeh4M2j7TXfJ8OVBtAcpo1+dFtXGn7TO3zp+ianxXY8Xjqv2HvJPbMgE\nvvfQ3xeu4vadw/lR5EnV8R/0ub1F4lnq/nm0UoHCh0xK6ilenMgJ3Na0iqJ8\ngFJAhckG4niBBaCQ+ga2/B6x2J5de73q3+JVqe/A7nWCog7Sd7+ujHfU/wsH\nxc0P5EbA2fr/lIZS8rXVglo+q4lyg5zHCuXB0zjh1jRf8Hg3Q8sR6Z0rxNZE\n34bhThEDBDJqKOxq7FptgCj0ZFhnA0+uHVnQ9a0PRFA+vb1fOA5qILEnzHkQ\nrYyTqZrquBBLBQBmr23FA9arDFb5v8cRISpD5pNNgfvWxtOslMmVbY4wecrd\nZpTF0kieJG+lGb0VrApWYlDB3u10F0gYM+dmmfN6gFboAZCWnSRjLLm/z30B\nSysRt2sKCrXyY39TryFx8pCBzykQVE5eTIebLB2gdNoyiUl6fx9+zTZA2sXd\nkJJb1yV4jUiBRs8kfQUvPzJEf1ZhBVP66/ZdON+0+yq80S88gW3n1EnpLoEd\nQSR1\r\n=ISyR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"29bdbfa94c703802a5c652e3d9d5226d147ce0a6","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.4","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.2","dependencies":{"debug":"^4.1.1","lodash":"^4.17.15","js-yaml":"^3.13.1","node-fetch":"^2.6.0","swagger-client":"^3.10.0","swagger2openapi":"^6.0.3","@apidevtools/swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^7.1.1","eslint":"^6.8.0","should":"^13.2.3","p-event":"^4.0.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.1","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_6.0.0_1588133049883_0.5029542602992487","host":"s3://npm-registry-packages"}},"6.1.0":{"name":"loopback-connector-openapi","version":"6.1.0","license":"MIT","_id":"loopback-connector-openapi@6.1.0","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"deepakrkris","email":"deepak.r.kris@gmail.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"},{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"26f12bd713ea24eb777965a90e6844f3ce7019e5","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-6.1.0.tgz","fileCount":16,"integrity":"sha512-lA6NHAI8rh4XQUv8nWwwcEq3A21bulRqZi1UJCUnZsf+g+CeaLlsNoai5OtDfO6GKOymlyYjcap+lnBFLM3nBA==","signatures":[{"sig":"MEQCIH6yQWz6DSqZBF/E4U1W7tMJMhDHGDUhsNECL38szonOAiBUjxvAsAYSEM5ap1kBLQYLZjyw3TGmVq82M2UY+FLefw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4XUXCRA9TVsSAnZWagAAUg4P/iipSL+SwaHrgnIV0oN6\nsl2DdVgpLszl2nhwReQbdP8MZFlaI480jETC3v7C6jyfaDHAhR3VsPJMerWZ\nMK0qjt2rv2Iwn0Dd+6tTT9qBixnWKbanarGp1zsCDMCWg4pNLuMfuievQoMr\n8xqepSRW0iL7eLYEz6SNxhiDpNZjP7xtrzR+hdOZk0QdcC/dqHg45Vh6tM+K\npFe1bM+rqMAxQRpeOJFC3+uKOLDQNW/19qPVjkjUlCBV92Y4omQFL9iLPwP9\nuQMmzcugt1iS04PALZKhFV40PdZD6vSKDsLhwPm/H2VJEwb/5CvRSngqHrB6\nubsjZQF5yshTbx7+hLCVmcYUlnRKU1xl5czmseuevktt/KKBB9M5P3kvlB9u\nYYs6Xs5RgHgMk0+HzpDUnCP57Hp5qDnCYr2YUuyhjnsu8ouZeEV/0/ARvdSe\nOw5VhgMl+dEpGaa/bo9y/Ykl4aQRwzFbFgaqxFujnCqgphRdmSJaqKj+qAhU\nM74lYJr6/6LZTtWfb9LK8CKZnnfG6p4EFhNcHMWG8Af3haTjCQu1tDdLKbDw\nV6944tSZH7EZKX45n/AiDh9Ho3VpTW9dJNFr6PWggTrnT55xIV0qS+5B0jtG\nNFfjoTJa4ZbvCzpJqsmkQa4EFTDkhEE3LkYqaMjxLaq6izUVTj/DlEsTPRsA\nkll4\r\n=+Bq3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"14746425661f3e185e466a8151bb1fa6f8282952","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.5","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"12.16.3","dependencies":{"debug":"^4.1.1","lodash":"^4.17.15","js-yaml":"^3.13.1","node-fetch":"^2.6.0","swagger-client":"^3.10.0","swagger2openapi":"^6.0.3","@apidevtools/swagger-parser":"^9.0.1"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^8.0.1","eslint":"^7.2.0","should":"^13.2.3","p-event":"^4.2.0","loopback":"^3.27.0","@loopback/example-todo":"^3.1.1","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_6.1.0_1591833878752_0.3439591048602668","host":"s3://npm-registry-packages"}},"6.2.0":{"name":"loopback-connector-openapi","version":"6.2.0","license":"MIT","_id":"loopback-connector-openapi@6.2.0","maintainers":[{"name":"emonddr","email":"dremond@ca.ibm.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"hacksparrow","email":"captain@hacksparrow.com"},{"name":"jannyhou2016","email":"juehou@ca.ibm.com"},{"name":"dhmlau","email":"dianahmlau@gmail.com"}],"homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"dist":{"shasum":"3e6247bfe82080f39a7c8cb14357d84cb16948fd","tarball":"https://registry.npmjs.org/loopback-connector-openapi/-/loopback-connector-openapi-6.2.0.tgz","fileCount":17,"integrity":"sha512-LB9PhrtCdlftN/TOEjF6p/pJMXUbherhjwbEskELER5ahzilmx39MuheA+A7VZpWVGoi7FskrJGSOxY2yX8ElA==","signatures":[{"sig":"MEUCIAFB25OrpLjXzExx6fSS0HMjEtFTYeJ6c3/1JLlB33beAiEAo0ZyEwR6AnkiY5FlAd9DQHzEbMhgQZ4eOnm8nLfhgyQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfghjCCRA9TVsSAnZWagAAZAgP/3VwAmE1BPbdpB+w/JEs\nQZn+oSYTKZMcYqVIFjLcqyd6d8EESwJBP7GCEj4HUdi58sseyF6ta2Py/9pn\nm+M6gu/bTBaPGx0qparXhkPwn9s46IJmIikFg7CYDuXCBr2RPU2gRbPD8Bo+\nsG/BBtc6dn2hmfCHT2j+cLDCfyXLH4516r9ztcpxI/flIJGzwzqw0wtozjry\nxtULrpo47kvvzVCuNHAT6I9idvUprfO+tgKmnD+HYuium3/ouVHlURGHbSZC\naqeP7t7GZdFZ8O+/eaJu0crOgimeK61iiZ4wbnbCu5xI8TI3CEV27Gn3coBZ\ny5hmMMeVhgCjhqLYmlqDrKjUg/ryB/70Xdj6oyWvaU2DrZpWnnkuaWWgypkD\ns9vu0IgY4suC6GUU/PhBUxgfMBbiyTwIQRcwLcYOiTwK+nlhPglughVsN7P0\n+UNBXEfpMmC2myqdXOTaDITaMm42H6dohPy/8PR4l2uQ3tpOAqayGB8YGz5P\ntPEf+vmF4BmwLOp84oomZ4w3mOB5J0ZSLCMgMSBpFtSd79oFSB/aR2+xZFGT\nfVsMptDoQJreoqU1kNBHIw3dsAsfNoi4mGRN74QFovrYCt7kjxRBLvdwVNr+\nj4dRl4b6ANfAwZts0yfp6zSJfTPLxdDWHH7DIvMST+E2sx00QhPJDJq3U+12\nZp+X\r\n=3ztI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=10"},"gitHead":"8db05a578b3fe8e5183b4fa0ef5b616768d944ad","scripts":{"lint":"eslint .","test":"mocha","posttest":"npm run lint"},"_npmUser":{"name":"rfeng","email":"enjoyjava@gmail.com"},"repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"_npmVersion":"6.14.8","description":"Connect Loopback to a OpenAPI-compliant APIs","directories":{},"_nodeVersion":"14.11.0","dependencies":{"debug":"^4.2.0","lodash":"^4.17.20","js-yaml":"^3.13.1","node-fetch":"^2.6.1","swagger-client":"^3.11.1","swagger2openapi":"^7.0.2","@apidevtools/swagger-parser":"^10.0.2"},"_hasShrinkwrap":false,"copyright.owner":"IBM Corp.","devDependencies":{"mocha":"^8.1.3","eslint":"^7.11.0","should":"^13.2.3","p-event":"^4.2.0","loopback":"^3.27.0","@loopback/example-todo":"^3.8.0","eslint-config-loopback":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/loopback-connector-openapi_6.2.0_1602361537464_0.9986077569714871","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-04-12T18:25:02.120Z","modified":"2024-07-09T12:43:16.308Z","4.0.0":"2019-04-12T18:25:02.274Z","4.0.1":"2019-04-12T18:28:15.020Z","4.0.2":"2020-03-27T21:20:29.911Z","5.0.0":"2020-04-12T19:30:36.324Z","4.1.0":"2020-04-15T04:13:37.576Z","4.2.0":"2020-04-28T05:02:00.328Z","4.3.0":"2020-04-28T20:22:53.447Z","6.0.0":"2020-04-29T04:04:10.003Z","6.1.0":"2020-06-11T00:04:38.887Z","6.2.0":"2020-10-10T20:25:37.632Z"},"bugs":{"url":"https://github.com/strongloop/loopback-connector-openapi/issues"},"license":"MIT","homepage":"https://github.com/strongloop/loopback-connector-openapi#readme","repository":{"url":"git+https://github.com/strongloop/loopback-connector-openapi.git","type":"git"},"description":"Connect Loopback to a OpenAPI-compliant APIs","maintainers":[{"email":"enjoyjava@gmail.com","name":"rfeng"},{"email":"r.m.graham@gmail.com","name":"rmg"},{"email":"dianahmlau@gmail.com","name":"dhmlau"},{"email":"jgorzinski@gmail.com","name":"theprez"},{"email":"frbuceta@gmail.com","name":"frbuceta"},{"email":"marioestradarosa@yahoo.com","name":"marioestradarosa"},{"email":"Vn7WbcdkHEmkHHpPCoKf@achrinza.com","name":"achrinza"}],"readme":"# loopback-connector-openapi\n\nThe Swagger connector enables LoopBack applications to interact with other REST APIs described by the [OpenAPI (Swagger) Specification v2.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md) or [OpenAPI (Swagger) Specification v3.0](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md).\n\nWe use [Swagger Client](https://github.com/swagger-api/swagger-js) and [Swagger Parser](https://github.com/APIDevTools/swagger-parser) internally.\n\n## Installation\n\nIn your application root directory, enter:\n\n```\n$ npm install loopback-connector-openapi --save\n```\n\nThis will install the module from npm and add it as a dependency to the application's `package.json` file.\n\n## Configuration\n\n### LoopBack 4 Usage\n\nTo interact with OpenAPI spec:\n\n1. Create a LoopBack 4 DataSource with OpenAPI connector using the `lb4 datasource` command.\n\n2. Create a service that maps to the operations using the `lb4 service` command.\n\n3. Create a controller that calls the service created in the above step using `lb4 controller` command.\n\nFor details, refer to the [Calling other APIs and web services documentation page](https://loopback.io/doc/en/lb4/Calling-other-APIs-and-web-services.html).\n\n### LoopBack 3 Usage\n\nTo interact with a Swagger API, configure a data source backed by the OpenAPI connector:\n\nWith code:\n\n```js\nvar ds = loopback.createDataSource('swagger', {\n  connector: 'loopback-connector-openapi',\n  spec: 'http://petstore.swagger.io/v2/swagger.json',\n});\n```\n\nWith JSON in `datasources.json` (for example, with basic authentication):\n\n```json\n\"SwaggerDS\": {\n    \"name\": \"SwaggerDS\",\n    \"connector\": \"swagger\",\n    \"spec\": \"http://petstore.swagger.io/v2/swagger.json\",\n    \"authorizations\": {\n      \"basic\": {\n        \"username\": \"your-username\",\n        \"password\": \"your-password\"\n      }\n    }\n}\n```\n\n## Data source properties\n\nSpecify the options for the data source with the following properties.\n\n| Property          | Description                                                                                                                                                                       | Default     |\n| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |\n| connector         | Must be `'loopback-connector-openapi'` to specify Swagger connector                                                                                                               | None        |\n| spec              | HTTP URL or path to the Swagger specification file (with file name extension `.yaml/.yml` or `.json`). File path must be relative to current working directory (`process.cwd()`). | None        |\n| validate          | When `true`, validates provided `spec` against Swagger specification 2.0 before initializing a data source.                                                                       | `false`     |\n| authorizations    | Security configuration for making authenticated requests to the API.                                                                                                              |             |\n| positional        | Use positional parameters instead of named parameters                                                                                                                             | `false`     |\n| forceOpenApi30    | Convert the Swagger 2.0 spec to OpenAPI 3.0                                                                                                                                       | `false`     |\n| mapToMethods      | map OpenAPI operations to method names                                                                                                                                            | `undefined` |\n| transformResponse | Transform the response object                                                                                                                                                     | `undefined` |\n\n### Mapping operations to methods\n\nBy default, the connector adds the following method names to the model:\n\n1. `x-operation-name` of the operation spec\n2. `operationId` of the operation spec\n3. The names from 1 and 2 with `<tag>_` prefix\n4. The camel case for all of the names above\n\nFor an operation with `{operationId: 'get_books', 'x-operation-name': 'getBooks'}`\nunder tag `BookController`, the following methods are added:\n\n- getBooks\n- get_books\n- BookController_getBooks\n- BookController_get_books\n- bookControllerGetBooks\n\nFor tagged interfaces, the connector adds the following method names to `apis.<tag>`:\n\n1. `x-operation-name` of the operation spec\n2. `operationId` of the operation spec\n3. The camel case for all of the names above\n\nFor an operation with `{operationId: 'get_books', 'x-operation-name': 'getBooks'}`\nunder tag `BookController`, the following methods are added:\n\n- getBooks\n- get_books\n\nA custom `mapToMethods` can be set on the connector to override the naming\nconventions. The signature of the method is as follows:\n\n```js\n/**\n * Get the method name for an operation\n * @param {string} tag - The tag. It will be '' for tagged interfaces.\n * @param {object} operationSpec - Operation spec\n * @param {string[]} existingNames - Optional array to track used names\n *\n * @returns A method name or an array of method names. Return undefined to\n * skip the operation.\n */\nfunction mapToMethods(tag, operationSpec, existingNames) {}\n```\n\nNow we can configure the connector to use our custom `mapToMethod`.\n\n```js\nvar ds = loopback.createDataSource('swagger', {\n  connector: 'loopback-connector-openapi',\n  spec: 'http://petstore.swagger.io/v2/swagger.json',\n  mapToMethods: mapToMethods,\n});\n```\n\n### Return value\n\nBy default, the methods return a `response` object with the following properties:\n\n```js\n{\n  url,\n  method,\n  status,\n  statusText,\n  headers, // See note below regarding headers\n  text,    // The textual content\n  body,    // The body object\n}\n```\n\nSee https://github.com/swagger-api/swagger-js#response-shape for more details.\n\nThe return value can be transformed by a custom `transformResponse` function\nconfigured for the connector:\n\n```js\nfunction transformResponse(res, operationSpec) {\n  if (res.status < 400) {\n    return res.body;\n  }\n  const err = new Error(`${res.status} ${res.statusText}`);\n  err.details = res;\n  throw err;\n}\n```\n\nNow we can configure the connector to use our custom `transformResponse`.\n\n```js\nvar ds = loopback.createDataSource('swagger', {\n  connector: 'loopback-connector-openapi',\n  spec: 'http://petstore.swagger.io/v2/swagger.json',\n  transformResponse: transformResponse, // or transformResponse: true for a default transformer\n});\n```\n\n### Customize http/https client\n\nThe datasource configuration can override the `httpClient` or `httpClientOptions`:\n\n```js\n{\n  httpClientOptions: {\n  // See https://www.npmjs.com/package/node-fetch#options\n  agent: (url) => {\n    return url.protocol === 'http:'\n      ? new http.Agent({ timeout: 3000 })\n      : new https.Agent({ rejectUnauthorized: false });\n    },\n  },\n}\n```\n\nTo provide your own http client per\nhttps://github.com/swagger-api/swagger-js/blob/HEAD/docs/usage/http-client.md:\n\n```js\n{\n  httpClient: (request) => SwaggerClient.http(request),\n}\n```\n\n### Authentication\n\n#### Basic authentication\n\n```js\n{\n  authorizations: {\n    my_basic_auth: { username: 'foo', password: 'bar' },\n  }\n}\n```\n\n#### API Key\n\n```js\n{\n  authorizations: {\n    my_query_api_key_auth: 'my-api-key',\n    my_header_api_key_auth: 'my-api-key',\n  }\n}\n```\n\n#### OAuth2\n\n```js\n{\n  authorizations: {\n    my_oauth2_token: { token: { access_token: 'abcabc' } },\n  }\n}\n```\n\n**Note**: The key must correspond to a security scheme declared in the [Security Definitions object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#security-definitions-object) within the `spec` document.\n\n### Creating a model from the Swagger data source\n\nThe Swagger connector loads the API specification document asynchronously. As a result, the data source won't be ready to create models until it is connected. For best results, use an event handler for the `connected` event of data source:\n\n```js\nds.once('connected', function(){\n  const PetService = ds.createModel('PetService', {});\n  ...\n});\n```\n\nOnce the model is created, all available Swagger API operations can be accessed as model methods, for example:\n\n```js\n...\nPetService.getPetById({petId: 1}, function (err, res){\n  ...\n});\n```\n\n#### How model methods are named for given Swagger API Operations:\n\nThis connector uses [swagger-client](https://github.com/swagger-api/swagger-js) which dominates the naming of generated methods for calling client API operations.\n\nFollowing is how it works:\n\n- When `operationId` is present, for example:\n\n```js\npaths: {\n  /weather/forecast:\n  get:\n    ...\n    operationId: weather.forecast\n    ...\n```\n\nHere, as `operationId` is present in Swagger specification, the generated method is named equivalent to `operationId`.\n\nNote:\nif `operationId` is of format equivalent to calling a nested function such as: `weather.forecast`, the resulting method name will replace `.` with `_` i.e. `weather.forecast` will result into `weather_forecast`.This means you can call `MyModel.weather_forecast()` to access this endpoint programmatically.\n\n- When `operationId` is not provided in Swagger specification, the method name is formatted as following:\n  `<operationType (i.e. get, post, etc)> + _ + <path parts separated by underscores>`\n\nFor example:\n\n```\n/weather/forecast:\n  get:\n    ...\n```\n\nfor above operation, the resulting method name will be: `get_weather_forecast`.\n\nThis means you can call `MyModel.get_weather_forecast()` to access this endpoint programmatically.\n\n### Named parameters vs. positional parameters\n\nThe `positional` setting allows a method to be invoked with positional parameters based on the\nparameters/requestBody of the OpenAPI operation spec.\n\n```js\nconst result = await MyModel.my_operation(\n  // Parameters\n  '94555',\n  // Request body\n  {\n    verbose: true\n  },\n  // Additional options\n  {\n    requestContentType: 'application/json'\n  });\n});\n```\n\nWithout `positional` set to `true`, named parameters are expected:\n\n```js\nconst result = await MyModel.my_operation({\n  {\n    zipCode: '94555',\n  },\n  {\n    requestBody: {verbose: true},\n    requestContentType: 'application/json'\n  }\n});\n```\n\n### Extend a model to wrap/mediate API Operations\n\nOnce you define the model, you can wrap or mediate it to define new methods. The following example simplifies the `getPetById` operation to a method that takes `petID` and returns a Pet instance.\n\n```js\nPetService.searchPet = function (petID, cb) {\n  PetService.getPetById({ petId: petID }, function (err, res) {\n    if (err) cb(err, null);\n    var result = res.data;\n    cb(null, result);\n  });\n};\n```\n\nThis custom method on the `PetService` model can be exposed as REST API end-point. It uses `loopback.remoteMethod` to define the mappings:\n\n```js\nloopback.remoteMethod(PetService.searchPet, {\n  accepts: [\n    { arg: 'petID', type: 'string', required: true, http: { source: 'query' } },\n  ],\n  returns: { arg: 'result', type: 'object', root: true },\n  http: { verb: 'get', path: '/searchPet' },\n});\n```\n\n### Caching\n\nAs an experimental feature, loopback-connector-openapi is able to cache the result of `GET` requests.\n\n**Important: we support only one cache invalidation mechanism - expiration based on a static TTL value.**\n\nTo enable caching, you need to specify:\n\n- `cache.model` (required) - name of the model providing access to the cache.\n  The model should be extending loopback's built-in `KeyValueModel`\n  and be attached to one of key-value datasources (e.g. Redis or\n  eXtremeScale).\n\n- `cache.ttl` (required) - time to live for cache entries, the value\n  is in milliseconds. Note that certain cache implementations (notably\n  eXtremeScale) do not support sub-second precision for TTL.\n\n#### Example configuration\n\n`server/datasources.json`\n\n```json\n{\n  \"SwaggerDS\": {\n    \"connector\": \"swagger\",\n    \"cache\": {\n      \"model\": \"SwaggerCache\",\n      \"ttl\": 100\n    }\n  },\n  \"cache\": {\n    \"connector\": \"kv-redis\"\n  }\n}\n```\n\n`common/models/swagger-cache.json`\n\n```\n{\n  \"name\": \"SwaggerCache\",\n  \"base\": \"KeyValueModel\",\n  // etc.\n}\n```\n\n`server/model-config.json`\n\n```\n{\n  \"SwaggerCache\": {\n    \"dataSource\": \"cache\",\n    \"public\": false\n  }\n}\n```\n\n### Connector Hooks\n\nThe connector can be observed for `before execute` and `after execute` events. For example:\n\n```js\nconst ds = loopback.createDataSource('swagger', {\n    connector: 'loopback-connector-openapi',\n    spec: spec,\n    authorizations: authz || {},\n  });\n  ds.on('connected', function() {\n    ds.connector.observe('before execute', (ctx, next) => {\n      done(null, ctx.req);\n    });\n    ...\n  });\n```\n","readmeFilename":"README.md"}