{"_id":"@appunto/api-on-json","_rev":"29-2bb48e4df7ca7a1feaca12197a7ec88f","name":"@appunto/api-on-json","dist-tags":{"latest":"0.3.8"},"versions":{"0.1.9":{"name":"@appunto/api-on-json","version":"0.1.9","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.9","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"e98566d5812bac290c6e5ab2f3de668fd419ed5d","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.9.tgz","fileCount":45,"integrity":"sha512-LztZJGiCGPSaRLQ9uSvQ+7/Oz0BXBHpvBYn7f/kV1XfqhAq7dVLimxD8jvPuDDKKDQXUuHftiwR1BgwggtylRg==","signatures":[{"sig":"MEQCIEgPv4xkqw6G339Whx6sKlPlvl0+XISY78oENBHsjCUWAiA8PbPwe7gTpQZKwdceEbAnaaSKgHFDSa4t5DWUmRqR8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":242157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4zuUCRA9TVsSAnZWagAA6OgP/1wMBOWSEKrwNOCpCaxp\nun1L3OBV1iFKbDbZqextEwzRw1AJhnZ+jcaD37eTP57mzcF3rcTSDMM9A9tw\nc9exBgnKSWV4RK520jIT4uWqmds45K78xVg5Xf50Cjz6ql/ox0gpAtDpuve7\naOl9odBi1DYroaSm30xTo3kAbpSSIQ5oIA2UwIjLklryUU7gqMNSsYV4FRZ9\nHR4NXZMJqdeKAvuLEYFjaetVOoNhdciD0VLNx+ifWHaHToYDP1NQFEupl4so\nhJnDL0T/VOmLYczngB31RoDsRQC7shL2rgoLjpXo0ZXjq/HUSEB73zFXLsS0\nHz+aBZwRLHcfbPiH0K4DRU0uXvIKhREhm/Gy+6xzUFdb9HSsHEe+lyZdlsvk\npgGc0eHVmj8U67yEul6Sv1Gw68OwfPkXLBsHcQoBTItkrtBcJO7LWfUXBw4Z\n6Z9xFyVu4VOecDn/rSo8iPETnYgTboenplRHXrbS5DyaZODJmL0mn9lpjZcu\n1R2WAc0sHlhu+LlVhmtZ5ZQLsSjFKNDb67KxMc0Gn0f3PgaZ21aCFMom8lfm\nJv7JYOsSPjxFPl5f3MN3M8LM/kp2NQshRYZkpAbOkrMsoCqPbItqoGI8Qx6k\nGjFNwidyeAVOjQGKV+mGJJPxTYQa+Ze5RQWloud8dlkYL8vAccqaWLuniqWY\nbKQY\r\n=tC8e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"25e74dfb2b4b81733f486beb7b9276f44311d68d","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.4","description":"API generator","directories":{},"_nodeVersion":"12.18.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.9_1591950227651_0.4961542662063336","host":"s3://npm-registry-packages"}},"0.1.10":{"name":"@appunto/api-on-json","version":"0.1.10","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.10","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"8670307553b1f512e12487fe79f8646187aca3fd","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.10.tgz","fileCount":45,"integrity":"sha512-axV6MK1Ed/qkO1Z5AUdyBNE9LCYk3kZ4SObxSNe79rovg4l0eUw9WTn4XpcwtG2C3bav/uhV3TW+mw5YZKQDmA==","signatures":[{"sig":"MEQCIFcAxUg/ctMsmVBFkIwHQOjRhduJD7ClQnhbS8GKzhsvAiBN6lAlaELSfBHtwSRXf9SkSwaY++t3Dg+r587TafUuNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":242158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe40DTCRA9TVsSAnZWagAAoKEP/jbBdtxJoq9UFmMuA3Th\nitWCPBBsytwPM18i8fHwbPi+S5s2CxhhsCDOSvQJi+lujKeop7Hh6ccF9119\nkqzVkA2vWMbDZUmQj8PEEW6xnScoCAmu6NRGccEE8krLvcOOMPUjwc7pfe9Q\n1ep4B7TsZXDb19jvBovBNPKr5lNspOCtd57SlIkpLMDavuuTrbzmU6L7KtCb\nnL2Yg0HcgGi/6ZQIPuOJlo58zy7FDG6jCyfQ1m4PRU8S5SodiBBSHQ+XR05n\nk8KacWOu8F/LHAIF6OO9RrdGWAuHpFT8KCAA0jTAkG5ZqUMgJhwHFWON1klJ\n4RccFSSzEQzj/SlSHj5iZhOz+kqjojm2qv9/IVPenCT/PXdRi52piLHFzKEc\nZD5XeIgQSRa1fDo1FTXMoodcUS25ywFabcUs0brZO73TglCbEwCdqRyjuI0A\n8fY0CR/Ku7MgyZumNMgviP0LZDHXr6dDsbsUoKUiXlD7nodm0VtFq6vAxfHi\ngPr9+0RJDxDcvweqy5Ct05GkdP9ajAbZiOoHh0OrRzAMJHTga6NVBKMnfpYT\nZx2pHqXZsnNcPEalz7Tf3tA6tGw0TeILoMUbb4XkbMhHl0wo6kEl50Syz922\nZF9HVjPh8Vj4c6oh//Up2EwE106l3ywBZlUR9PlF6iygfzHvLXHDwu6torNn\nHeuH\r\n=UlJM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"4cd79462f7b9f10c1de09a8260f5bcd0b9c69102","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.4","description":"API generator","directories":{},"_nodeVersion":"12.18.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.10_1591951571085_0.8598887274210099","host":"s3://npm-registry-packages"}},"0.1.12":{"name":"@appunto/api-on-json","version":"0.1.12","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.12","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"f1f5c8b8e4ff42c6fa8b619f92adc2b8a97d30ca","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.12.tgz","fileCount":45,"integrity":"sha512-UIc25XzJnl3/KKD3z/kG90lP3Wq3gJ1zM4Qm0/04ZZ/X6ikiFpHxRU3sgNL2mAzc3bxqDjIstqID2qcEP7XAEg==","signatures":[{"sig":"MEUCIB2Yg74OKOCm7q6sLJQssrZHxmQsOAi0V+LTlZuJGlklAiEA7AlOs8yuBrZiOYEwDRnGawp2PSWO6a0xeK9HK1aP9+Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":242122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+da9CRA9TVsSAnZWagAA6EsP/2hB3wkERW6FMWQvKGZ+\n77UjPFgw0q4nqN1qqJGwhlB6SHqRfcTnRt9H/9M7RbHTbWlY1LEKxVu5yA4v\nyx3TtV9sUD4A/YrQ43nfUitd15aDa3hjlVt8j3V2HEBjveywLqarcizdST3g\n1rhCp80Jn6yV0z6devOvG+No04+Wj5eke4nQcL+/prVumXGvu5rAnNLQ2l+L\nqiByzfT6EoiA0qWjDnMzMji8Mu3GUcEgPGPyVp5u4zaX7xRyh8LQyXL0Zq8U\nyqInMYIco6ywYWoPtoJeS4CHCv8l1jAkKNlWgYP4e2pszWSgjOSo/MC4Lw+2\nOARlw1MlGXlWlVQHluzRFv0cczIF66+1SA4d0iOZOboOh6kZ2hjqw1qx+Pra\nLbE+DYaM8x8UtalCiFb5NFriKITrHzxggCh5HMpH95VHZQOS3EHSCJ2trHip\nSoBSKHGIzTHl40VH+v8vokvHztM3SCKgsc5QSld4kd7Rh8L3tm2LAtHKWqgD\nfzKGSqgiZjRuDyTOZCds0alQVerSZKw7pSaP8Cy6zipEcki+oAw3JAoQXr/j\nl3PYaPSqYw17v5vvF0TYlj6uieA+HEc5eHNwRC6yMuk+06fIRn/kFT4pgotZ\n7TqzmHoUEj/a/NGjPhOXeLG69/XHhIp6grX+Mk4Ra771j6u9FutY8BYGkN7a\nCY2S\r\n=EIgj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"29374bb3fd60fcbce53e7d5cf520bb89d1b1cb3f","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.5","description":"API generator","directories":{},"_nodeVersion":"12.18.1","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.12_1593431740376_0.4241796613790594","host":"s3://npm-registry-packages"}},"0.1.13":{"name":"@appunto/api-on-json","version":"0.1.13","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.13","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"4368140b63e00c8e8a893867241ad4ec753b8e41","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.13.tgz","fileCount":45,"integrity":"sha512-s6vRyHlUuTr5Qkbk9QViJ0t680Fm07QZSL4opS2OVXvAWqjxGCnTgYhEDS2HhrQj+l3TYB1rKgrYoFsehh9uBA==","signatures":[{"sig":"MEQCIEahg+XHsMFLd4yfL45l6GPpinZxOiXhlS9ha2FAwqJdAiB/FY5YzAFaWzJHfTZXBG21+eC4FhtnapodIYN4M0le7g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":242091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+d0jCRA9TVsSAnZWagAAkYUP/jckk6ABkF46yIds5qjs\nrGQfy72OCQ+9eBgmOqCEJ351fuV0IxVYIQG3vW20H99nGwGtft34yK0gdClH\nxNKxijIE4zAIodz5/0FUKlUU+lN9dZXZJYuddlmrBR6ipFBYnaP9i+1BKwCr\nLN/7xuCwYFy57ge7dcbPxhp4EMpFubTVBk16C7f4y4ZRMZqWbiVb1cqQJBbU\nQa9qsNW1Tk/OExy2sYg9cLD9j5DACXYItbY1zrFGjRmQEEQE6Zx2p4K+ZcQP\nfPqT3UTTcOy9dzwE2yJZabfaA+0xcF4Ettf7jyaJuqVBPyQcsnxEGGhDDx6t\nDu5DOctK7BzfA3hW3DbE56zw3IDkc1Cr603fkBT2Ad9upa9d0hjdF2seyP/8\nu5uAlkkPIXi8mzEwXt8ZfHyZgJFvpkQ5PDrUa/nfcWUSwqJ2WcIAhgIAklfe\nxoayyIlxeHpsBPEEMr7YkdqLcof43gbiV6fgnHOoNPQpMdDIi9guvMg4SnOf\nQgJ2s6tofeBQkHkmsR/r90VZhSqM1I5OUQVRyQHECLd5ePVhyNHcOUz/UvJb\nKw9Z2/qsYZbHIB16AQknWzL9/jlCLOqDCtlnbR2mRKz3ZraZzVRPb7Iwly6T\nISBfL/HnuLGVhNLcAQ/FAtQ0j8PxP4dFeDW5xiPI7VeWBVWC6l9SU3f92TUx\n/nrq\r\n=kEXW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"5cd267225597711e27254cf1965be5ee9ab97d5f","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.5","description":"API generator","directories":{},"_nodeVersion":"12.18.1","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.13_1593433378631_0.8287515844232181","host":"s3://npm-registry-packages"}},"0.1.14":{"name":"@appunto/api-on-json","version":"0.1.14","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.14","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"f67b356241e350b76d1c1e9e30560d2c45c9a718","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.14.tgz","fileCount":44,"integrity":"sha512-sgFRgnH5p6TsAJepu90gTr0w+mfiX91Ib7YgRYOgiLLa8tiCzAAuQQKNQurxf/LqCnWOZW2Mlpob43pfqSBjkA==","signatures":[{"sig":"MEYCIQDkTRxMJj2VXuh4BxnpPy5NKZOLWPl9frulAd1U+jilAgIhANUhCp8HsoMAPmnv+yRgPRJnINDusf6kjQwHspPRrwVm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":241167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB33bCRA9TVsSAnZWagAAZ2MP/27L8oG6NwK0B2lsc7om\nQJB9qeUHPGp4e/mv7vOlgpN2V5mxjuNwHZVqVpQp5i5rzr275iREOKKYrVJ9\nmgC1jycJlGuYxbTX1+cidOpWHUG/dbvUqgdyCsKgJHnBuU387YPVGwTPM7Vg\nKSWz1dmeo6n85Vk/PpxSnns6fkAmjlV3mt2aIrDjehe+h8Ut9Y/1ma6NubIp\nq/6YbWoMnpBFV6FA35gNjKpxq5Ue/c4+aPUbk8Cias1NAV2f16bjeu63shFY\nxzT6FSsNVSG1bKYgrwx9lsSVQ5xrI4QZsGStV15nPXjReeR6gy1dqCiQccWn\nAKv6aFfLFA89cDgcQdrQLEFbsKNpOoiyAC5iQTkB78bv9om4eZIJrQtvpYm5\npsvU6eDvFnmM6ZLxMhHkJOxR/G8MUuR7ezpJ7pYzb8FMtPylEOR7Buze840P\nZoaxtnDHO/HSl7eM60nS9v5ssTvYTVr00J9BlMk0M0c5z3iTJ7OxmRBXiG7B\nc0fS45U8jvEVvL+a1NNmkhSBbSCNN9btm6MF80y79Xv1jA9bmDqTOPi+gx6I\ndYtKQyKOdI3vorv2oMWn8Kt61tNTWNepaD0j2BUSPQgWjaWhTHa0BkgMbJk/\n47VEnpuVm61B+R6UTtvYpIbvtltgKJRvB5L+HJ36+GFcZwLehZYxXuKaHeuY\ncSuq\r\n=zDXD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"fb2d671777fb40a1e248bca296c502a2aa09b0cd","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.5","description":"API generator","directories":{},"_nodeVersion":"12.18.1","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.14_1594326490381_0.19438268376918488","host":"s3://npm-registry-packages"}},"0.1.15":{"name":"@appunto/api-on-json","version":"0.1.15","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.15","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"5ad5b6c27327590bd24aefc152c230d59a96474d","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.15.tgz","fileCount":44,"integrity":"sha512-LtzLLMxQJhM3U8orHmVZeP7Ej9R1CPdsl/U8EDsh8jD3Tmwf9R+98EzcpxkFBib9Hk0pqMWtPWt15ymwryaNIA==","signatures":[{"sig":"MEUCIQDhyt0j1s00/te4gttAuNjBd2oG4pFOZly0c8YgJa27ygIgPcLypSvWX8g6oNIATz0vKyfjDFGd67cTykcmXZOKcrg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":243942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDw9ICRA9TVsSAnZWagAAsekP/Ag4imW3npjm4ynaQ9SD\nKAgr1AYL+PilUxTDR4voOsgkz7NQcwP4xBCNzj/tWCLFyHnf7iOBQA4PJzGY\n8NR5s4+9I3Ngz5AtBiIP4WNCwKN3gsWf/BNLbyr7SUjqonWLbqv/OR1RLt64\nMZByOSSZ/r1VhW2mJDj9NEc8UHbxrTdnnTC50tnq1N4m/3GRBHTj1NbRMWXA\nbshqfO15j8vFp9orX+pfMrV/SHBnxa5IqbIitoqhWBHc+j0C42WO84eda+F2\nEItdswa3FUQn0/M9kPSSlhjvoZfLYLKffABeVnt+rUhJ3qx6DIeGZJHg7B/f\ne4WxZO9Ydz6drYv2jCWY3EDLhLBvNzdeQNUxYY0dDIRbHiAPp+CvB+F4GVmx\n5//TkHHx1QUVm1AlQElrflenS3DkjptHdOJgWnn++dunSpSb75HedDKJYvXc\n1Rmz3u1INqBfphc7QS6SL7TAyxY4z/6KGIMSB7AaONoNcmnJJkaNLKbGuEVM\niGuh2OmPuia6H8vAcCgpoq4RSycyUYQ1VpjHAMH/kn+EQF2GSAgM/fIHvR7P\nbaOjaZF5Or6Bs19jw9yqLIOrcFcLWXZyl0p7WvF/znIcIaFF1t1mAAERhj8Q\nRTCRcFcEE8+Iv+EsAQQ1QgD+JtoAcfA8IgDlzYdW5Of3l0aSnesZf1uLKQBz\ny+l/\r\n=I8BR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"d929691ba6243ad4408c7c8cac4b9bd015aec817","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.5","description":"API generator","directories":{},"_nodeVersion":"12.18.2","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.15_1594822471643_0.6734013245675641","host":"s3://npm-registry-packages"}},"0.1.16":{"name":"@appunto/api-on-json","version":"0.1.16","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.16","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"ace564e91ae04dcdb368b23e691db93c986fa795","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.16.tgz","fileCount":44,"integrity":"sha512-ivxsW9uapLTg5T0LjjoFDjUi2xyR5Lc2A0O3GV8+BpiFsGI1BDmBT7SionKvRKYicIaur6mwqF9711pKAEUi7Q==","signatures":[{"sig":"MEUCIF0ivr3zYqB0W2CUwI740knDu+VBCpRwHN2Z+Zyoa5+2AiEAsHrWCNXFvUoKn9X3lz4qkg+qBozmgivP+YnWYURMDUs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":244772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRRMCCRA9TVsSAnZWagAAwVsP+wfUgqDYIYtpHKW8O5Bx\nJfLFfBSlutEg2foDIZksC+1arZUHhUbcD3zDNQ0orjbHPcnGubxilwl50fr4\nL8c/RxJ/UAo57ZdRvkjj0TrB2sFl82rZEX35hGqlekqZlorWPFufHDkd8lMe\nquS9Os33741W58yXSG333AOrWqbhmUiv1da2FXR5p1SUbTtlcYdwJV6J28tX\nDpErVsk7XuZTFlYRTY3phMF4aAjzACYXeXV3LtExVSywME9wpVeUh3g+ZYZ1\nonrFblRJYQ2l1hP6NhLcqPTLQTUZFo1CKfmdQ39qdyUSiEYxugfEFgTcZ4Ui\nlGEhU8d9Vx4jOLpM8wgWa6on09N4aadoTV0LNFUJDxFoGr5Z6mqYlo5owBjR\n/jKBCseqEDbxHlc0NM33Kd27kIRkPujKtXWVKgVvKiGyWa27Ea3Ucys/8nom\ni+/9CysZTfaCpiLVKuqcPUbQehC1hS6f0RmZPpXkQTCtYcdsRzcqWwFcj1aC\nc7ylY0Azep2Ni6ONK7c5+K5NT0XYz5RbgDQGzZhCAU9I6zdHH3qUUHK24I2Y\nrOa/EjdqK1PX/z7k9i2BGV1e3s3FXeBffUEJdHFz1RxuCwHZi72i2I/QDuy2\no+qUh94iDR1zb0lrupin40CkvLjD6ICceXdQC0eYqc2gGa1KdLpukRF/6wQt\nzK/K\r\n=MFeX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"d9c2e0d126602288f2174b89a571bfc92b1c0207","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.6","description":"API generator","directories":{},"_nodeVersion":"12.18.3","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.16_1598362369878_0.5626197705569731","host":"s3://npm-registry-packages"}},"0.1.17":{"name":"@appunto/api-on-json","version":"0.1.17","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.17","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"d3a1d7e41d7b618274b1e45b4633614f3f048f10","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.17.tgz","fileCount":44,"integrity":"sha512-tDhdWfKEZhv3nx44gZDCaAkQTlq5alx5lcszASju8n2T8d7KSe6CJMigOmjQpzwTq9ibMQiSIbUm3Uans2x+ag==","signatures":[{"sig":"MEUCIQDRAyTOnqeobPG46tg6RuxFHdHpsEhPAQLd1r0Cef3v1gIgcex42nWxC6miqlZCeAloXAYz8+7ddrmN0tQ3Hmb3x2E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":247603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRSADCRA9TVsSAnZWagAA508P/3vbuegH3gkjcXwuq3yt\nwND3ZCRBzJ9GNUiUl1aHbwG3ownXU4aNk4iHepBtgpDlNLaF9eUuqMdaPE6a\ncqvpdov91f07iChawidqhiUDrte6xgWRKX9I3vDurgsz3Cg0m3ku2+Bq1BBp\nOoGo0DQo6dbLrz+jris4O1unkEsQLRbzN6aFBDMxeD9M1auwZtwrDFbdozo6\n55F1PoZHIJ+nrrXgDaxiCYg5+OJzv/BlwiqRkhgiTlQppJ321EJFM5ggi62z\nm7CopBRPRtGLBavGU3iU6vreOBZTy+zUyqYPZK5qmSNRoyl6hKipXZlfIadQ\nszG5xUE3UfrRXuR042G4KettrHEQAFsyc/gWf2CcW0UjXo1ifxSHoV/pmmGg\nawuQeXkuRyPt8GkzKnLIAcTE88lge1/T3wh4f9EloAPY0atTDeyk+gjfnjMZ\nKA06BglxkJ+Tp2RU1HpliwFpCuj2FItJIordE97v6R0KfJjU+a/rx3vjrdI4\nYo49S4q8KBGKfLgdYBQn2CSSEuUOzQCcnmOsJMyh6lXH+1zjdIXFK4DW+kY2\n0HCOYX3FXjwWUxgGMMz757Z8S2BfUV/Jd9JpvG4KlBu2kSUPHyRJfGmO5/iH\nv2lOLGovbttoDQ8150s5FmK5l64ESXBOmpwHgff3gJje8zlZGSlesKpexV5Y\nf2cr\r\n=nSJf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"2a66ddf3eaa4c1d66665e168bc935927ca814434","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.6","description":"API generator","directories":{},"_nodeVersion":"12.18.3","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.17_1598365698919_0.7419922352989674","host":"s3://npm-registry-packages"}},"0.1.18":{"name":"@appunto/api-on-json","version":"0.1.18","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.1.18","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"2d48c24f66d1ac3b5d15efe7176922f7440fe2fb","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.1.18.tgz","fileCount":44,"integrity":"sha512-mP0S9wSs7xKB4nsXm7DU2A3XHAc2WcuRwBvg0VSFu+bX/XogoZl7LKN/9tziKEs4bSBN8YWGUbhVWha6ulOLsw==","signatures":[{"sig":"MEQCIFWHUo4279gFosCdhUR3kc0y396maMdt0vSLbUnXhTo2AiBlISD7b6ksn1sB2yiQZ2jc5jo2D2qoHHHK5JeFVGoFog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":248247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRjrdCRA9TVsSAnZWagAAvHgQAJLnXmz95iApUSY12cqF\nZlV8R6MSRtFCENumaCrjGjKOF23X0RhL98L9V/ZSaOfp2TF3sqTIxMMKPkD5\ntaV2sJ2u+oB46pnVDPGk9KfRdVetU6+3S9uhyWWAYY/ayBnNmjpA1iNSwY4s\nxVG3q7tzXBA3vR2eeLIt796NaDxqCtSKEfkbdXaTe07ZMwWZ0cuA9u3zvb3t\nQNG4dr0rIW0yNrluRUWOrcAgqCr4xf1WRHMmU3T8ZZpQvGTFxy1wkW1hOoqX\nW4aQmfJyfJ5j0Dcc4erZoby+Y/Ycq14usRbv9MVeSjNnAHO1sOtcnCDjvH4P\nD54zyWGXoahEcwwfmWNOIFG5R3BpfhXsM0L//D44pS6WmHNgt6K/MP7i9JZg\nXlH/804/dxZHc0eGKDUGhqtHnUba6JbbaejJjx+n8lVmy4lCyMnb2thYG/9j\n5x9CUpbIbvRlS7mBwrFmI9QE+1/5TqkTuVD5y+SwuC/g5FZdiKf2dJpBPCjz\nCz/LPa8hax04vj+BXhBypN4WuAYkqcbt7hx6chtoEOODxoaIyc3XqfeTmC3O\nCCxOrltp5mTgmBQqwqI8DKpQ1VaNHITZEFXLDtpGEZmk6RmGvbcUKBwPau3R\nrnbvRkZoXy08mimNq9m9UMHkTt7ZTfeooPk4XKjs4ads3mgTR7aTXtDRDE+f\nyO0B\r\n=aG82\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"bdca748eb9b2d004b569331ce7179707c4e249cc","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.6","description":"API generator","directories":{},"_nodeVersion":"12.18.3","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.1.18_1598438108465_0.16141239924032758","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@appunto/api-on-json","version":"0.2.0","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.0","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"31b0b00c56df1f26a738cef5c35d3d20b54572ca","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.0.tgz","fileCount":44,"integrity":"sha512-ryTQkO/p7lHdG2EkEdvlehZcbjOq3fh+cqlchloX0SrPP1P7EOuPUY321sB9/Z0qjbpbwb407PgJdC9MFNtpUA==","signatures":[{"sig":"MEYCIQDhdtz7iQ14ct17CdvItYqO4fptG1q8aYKMKKEmrC7+vwIhAL7y+A8sCJaHSJnsEIt0KA19kQntvF0cP0AIuAiYRg6w","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":243508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkznFCRA9TVsSAnZWagAAz/0P/1EX6n/danKRPxJssO/V\nBVdqAENrEOxqlo0KbSsU1tYpMgnCSZMoUgpXKQwfh0E+SUsXbtBOJd4y1vrS\nmq45EjJGfikDKPxJPaIoGNGdDfEyISzHrj2Jfdzsy96/NGzMapJVNMNzDFmg\n/cyTNI3ogszwPqKztlEcsSQT/OHKM9YBUEUOUH08fjOKU8WKXm984nhSfGPQ\n1o7T99HEwbD504MK/sRbWDfEmWqZSnx7Wb14VkCUWrkjC64rUWUx5I9de5s1\nPPawojW5kj5Bvg1kq1ARixcliae+pTNj7UXF9uOE5+GrcWcxWfdGC9ioLYAG\nuVyzHamVGCktVvi/UxnqGrFWP/MUjvuOhF1SQ8ag7stk5zytMHHMs3rrgBeo\nHXSlWr/syde6XQDPLz4fUL2ypWf4eGx7wzm+T0LjSyMrNXd5ODwqUtVabAxl\nZjChXZIIAuO8D/IKoihJPC07ztPJduNtBTFuHWVRx4VHvbs34m7cSOJ5ARp+\npEa04+FIMOAL0YsAEC6Tiv6a/Ci2iDLhTV9rdjkf/deL6/u6kx52gT/n0zvZ\nnQO116+EtHH6wL2jw68yXgbHdHdk74vc1LGJC2sCH3Z3kqYJDgP9aiivXCIc\n3eBW3yRnQVoWhUkKEwGYJazdhmTl8KjBrL4GklptmmY5V2x2DeedUOTcKHew\nvDrE\r\n=ONtG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"e300eec1e4e8f970c1ff8df0de35b280a4b1e7cc","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.8","description":"API generator","directories":{},"_nodeVersion":"12.19.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.0_1603484100470_0.3497252973567402","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@appunto/api-on-json","version":"0.2.2","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.2","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"b4136a193b3a5b6d42d47c9036a912cc7a8a4c2f","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.2.tgz","fileCount":44,"integrity":"sha512-dvwIGRTkb/qsXmN9vhYBp28YpQzP1HZBiK2aZz7Av7j6krzTmk6A+QTshLab32CbZFd1lT/AO0ATXAfJCQJWKg==","signatures":[{"sig":"MEYCIQDMYC68lkYggHn0P9P5FQHRf7TiawBCfd4LCUsU309cBAIhAPLX51Ee/HlvdoBG7MjVakzFCX3WXj7xRyrEucafOWZ/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":243647,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfosx+CRA9TVsSAnZWagAADOsP/3YVqx+obm/fTFS8GxdQ\nD+Bf5EAlC2oOzOwz0VvlJnwG4Unz6oeF4nLKm6i9xGn9bOQDJ3hhLFWXt2wQ\neEnEcWrFXH5daASc6pOHXJCgyKSNwlXyLoxMQSt4u2pMnL+FSKTh/DEEMjXw\nRRv8gubv861GUY/uosILF0wCJAVWQOf5a1DrBGg4kveBkD6HoHzNeeELYGAW\nZEQVn7c2XGoZ/AId5qzYof85b60sTDK2peINKilzoRFVoPQTk03HSkV0Hi+S\nReXC8KIDxDCDEeZOQHqHTlpU+vbXf1fuJ0CQ0Lmgpwz0DgqWNKinDq2OWLi1\n05Op/xAY8NFAtYFxUOi921yr1r6nNwD9dAJyUDU+8gqoCDxQrXKA3fsLmxrI\neUtDs2Aa8uPusdrhMidmxB76Ij6dTiR4jtO111SZpQvFaoIPw0TdLqPW41de\nFQmKTew78yLuTZ530a+PZ10YAXG3P1n19aykzm3/4epMcnUaqgMkWAdsBgck\nYqeEqbVoLelKA/9iOAG9o1Hu3VuxHEBfTXzQ+4XFXfQRSSqw0NzR/ZySZMCq\nbo1EK4YVgpGwRtmEMVmx3kvE6wj5ySAL049aGUIWaBh91uE3eXJ3/cXn6wDw\nwBcK00+G2dTzGWEU8KqEX22lQ/aut/7QFcJQt6iUeTVOx22QhTcieKOOq/Pv\nUdoc\r\n=MIzY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"2af228aac07ba8da040781d34b9609c066779205","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.8","description":"API generator","directories":{},"_nodeVersion":"12.19.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.2_1604504702435_0.3121411518191588","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@appunto/api-on-json","version":"0.2.3","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.3","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"4b91eff90f712df4869372bd4ac5dc9dd4736b39","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.3.tgz","fileCount":44,"integrity":"sha512-AZLgU2kQtkWEPdWtPEy+2pi7uwkO1FIZ19VaAoGl7+QrSJr+QQyEc0O9+tOz75LhVcx6tAd9phAYSkfzl5huGw==","signatures":[{"sig":"MEUCIQDMdr1uU7/iqFdAjV6pEwBAU4WeKT4O1eHg/Usva16tBQIgC6s1Xy48kmUnCSXYeY4itvivHBse+t5zXSVeJBw2DVw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":243646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfos9yCRA9TVsSAnZWagAA1foP/2D/uzEzUAiWrETuvun3\nDq5OgRoJHoXGSXk2h/X3PKxMrI70CKNPQRdy8aCia22PuDvJ+eiB/Q44YTHi\nCwlP2RcCsw/+7hcypm8Y2lbCEC/SUJyXhxywn32dL/+o5I23RA7dNEjI/SDg\n76uJrWNXZneX/q9cY7mM4e5futLc2XUqwPklWx283PuDYrYRgciWbCjFs0Xm\nauL7AQjk8VdOeTq7WckSA5SYgdyPUkNQBE8Ilgtfy6l1EXGqDhR1jQsY6o/4\nptDoc9gGAAIfXZKhV4XzxcNCDqRFBJFanhFF3027CKLU7BqqzHw31vKMCYvP\nfJieSsBkE9+5NuuOfxEMhVMVJz2UxHNsmVh2bJIISgnodbbLG4KPQl0pgP3Q\nGZ8TN/DfIChPAqC0/KFL/zQ8JT901V1Ub/Fio5BevpByhACUCGYKYL5yFD2h\nOj+hd8WoOnRJU8RQBKAyn5Um2JwGkkfkmZm/6VE6wIU2MHB5GIlF1jTxDcTD\nJcaMYzAJvF25MkW7tmuuSBxbv4IaJqhIl7ITGvx42fWTHbBYewqCTFxCMysG\nKSkFxBf4XTmqFK/myn9zjow0UEJdXsL9VydB8kklKQ40n34xmzZTrD4mKG/k\n631r+GOGUeE3EAafNP3kRR7JLSD7k8j/qrxcQ2+S/JiMlHZswdZUSRWhv+ij\nAJVn\r\n=aJUJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","gitHead":"5c74d10cabe4158f2c21a16999d7c3ffa5e3fa14","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.8","description":"API generator","directories":{},"_nodeVersion":"12.19.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.3_1604505457923_0.05522779681794576","host":"s3://npm-registry-packages"}},"0.2.4-0":{"name":"@appunto/api-on-json","version":"0.2.4-0","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.4-0","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"30406009ef602f60df7abca2ab4fa2101b220982","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.4-0.tgz","fileCount":45,"integrity":"sha512-ZBfROzDV32txNVjpj/y5RNWFx8uNM23rkrF4yXOA2tePUeaZ4maPhFeVEXfV/sEq6cI7pj19LRWvTqyGSfBNCA==","signatures":[{"sig":"MEUCIAC1z9dvRvvT96wg3c7oPZVZHRjDN7b8mUwvygUa9kD+AiEAwy2KRrXGL68uONvuxpnjY8n1d53FkN4dRYPDWjdZ6dc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":249440},"main":"src/index.js","types":"types/index.d.ts","gitHead":"4ed535c1e2401bc6633e6fedbf0729e6ff8151ba","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.15","description":"API generator","directories":{},"_nodeVersion":"12.22.7","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.4-0_1636667114575_0.6401122512393036","host":"s3://npm-registry-packages"}},"0.2.4-1":{"name":"@appunto/api-on-json","version":"0.2.4-1","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.4-1","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"da07d46dc19918fa3e353e7e1207561827a09aa1","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.4-1.tgz","fileCount":45,"integrity":"sha512-9JVsbeSDvuYeHKmDvnLzQF8DVlDsFQBF339WEYGO0FLTjvUilSzbw90+/DhMpI9pWDR146wF9gi1WzvsHrec4A==","signatures":[{"sig":"MEUCIQCSr9bWL8h8kVTINQLkx0sWX43AooZbTzHVXbT1DB2ccQIgTFOpevaZZCHEgpSDMfYb1Kn2TyMgOY+Ij75VZERk6HI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":249696},"main":"src/index.js","types":"types/index.d.ts","gitHead":"71fbe074fe4e4646c510bca00ea4c29bf0fe3a45","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 50000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 50000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 50000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.15","description":"API generator","directories":{},"_nodeVersion":"12.22.7","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.4-1_1636729265902_0.22482299459530264","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@appunto/api-on-json","version":"0.2.4","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.4","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"875ac260060052bdb0ba28c817676cb7a97010c4","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.4.tgz","fileCount":45,"integrity":"sha512-vA5ShGjXjZbMnbAGOpw/4sSlqnSjiq0QxkeTvJm+jRtKcha+NWVYQkw2HSSRHGzUzkeDSWR180U5vwPPhRRKHA==","signatures":[{"sig":"MEQCIGyeo00SN4EpQDme5jCytaIzaVa7JTJ1mIg3sinAeWTBAiA+XE3tMj/K1iVVEV2LOEngOyoGJ2D49/Yl9WT9QhQhLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":255365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnlqJCRA9TVsSAnZWagAAom8QAJhv+ScWkGaqGnaIC3ea\nrDKCB8Q66KX37/g3jti0DCDtldHKAx/2/OlTGj4PqEWtyMUYCNyGwwVrKJcv\nDpaOIHZUSj18h57/g78u9ycTu2lq1+1Dhmens3fXKCdgTk+LX3Wi7YZw854f\nFray8TG7h5vKJsIYgtJj1TA/oRvhKJJQI1Fy43pBV7yTkQPrnM2g/euOUFDz\n1h0gflA4Vli5uoWdVrzuKyTn9HVOsgv8aLusar37046wju670J/xv0zcZN0/\nc26QKDFwm/v/yE0YDQSi6tCEApQHKFyJ/++YkcSA0sUc8MAn+rSuLVjXe+yu\n+NJafkJspyzICKL1XfQ7CJJqR8or+wpJyH0YuYtvH930ucQe+YF5BUui1rxp\nIpQcL6rzipBDDDcMi2AeldLZ9eSGN3TSx2oWdKGd1/lfLgL3RDqY9gF8/lL1\ndVvWaxDh0YJy9vrSbDeejqdAKKBNdk0vgeq6MYIKEx2TTVty7ReVwsb60mok\nqscVZsAnlQJfthl8ty1o/007VdEIpegq25pHFY63oQoqWlgQjUyXmapFM+RP\nVHoh6wYecSf+FTy1zgoKU3ABX85UszIdzHi5vbIgnuy2vt5zzASMK5xlFt/S\n7Bx/ohe+O+3gp6jGN70pcx3VTMle/Kl2C05GKqfEBQsLY2kmMy53MQ8TJSu5\nwZpZ\r\n=yn8n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"c0753376598da5e519d14e40b97fa47016f87171","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.15","description":"API generator","directories":{},"_nodeVersion":"12.22.7","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.4_1637767817666_0.13800817501205276","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@appunto/api-on-json","version":"0.2.5","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.5","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"aaaa18c30bdd5b3892b85a2d9b02f9b2ea62b4bb","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.5.tgz","fileCount":45,"integrity":"sha512-PGfizQEPV5F1mVGdiuiipi3REWIpgmnwn5/RO+3Z6zGipEMl9AJnH+Jfen+CNU+4bFnhOddhmQ2ytF1tNMzkyw==","signatures":[{"sig":"MEUCIQDpjq2JRMcjJdJc5D2jKJ1Tu2dlagCOG/UH3jW6Uex7MwIgaphOQlyDSlFw2bInsgR+Z1Ybz+gtMOxE3QBDXGHxAew=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnqE9CRA9TVsSAnZWagAAjUcP+gKXfzgioFoPz2QCa0/+\nXeOwDBExJCzro5wyowEPGmcukd/G+0tNql2JFJqGTeBCPZ9HxDGcnSFLueEz\n0c+ZLb93MIjVh4YEIes6A6YhkFoe6zT70uEyf/rxBGao900UjSpPipro6bRZ\nL9HPnUxDQXPRUJnVUazPCupKRunsE1OBz46/YVajQGF77v2NN0fmDFEIXr7D\nMYaK2ldNilODkJ70JUvpaLGOc5wR3HOYkal1nUwkmoSPBrJ69lb1Ai3qwQgz\nJsjzc0CDsMPhdRevpbw43doN+CDuU5TNn70+rxhn9VkS2LgqS8dsnCRyGcTH\nwwpHb97rfTQyln9ONSFfHTb1IdeWqe1HyOmDRB4cz92zZigamLSxO3JjSTdb\nWjZUOWZXzojoLxkTVX9Lb6D558696xdGFLPXcFAgPunuv13PGQvGlKao6d3z\nmj5r6heu9u2GKrsf+PZAuXWDb9qTHXygRaia76wVPcyVQ1rXeespgzNZQuE6\nsdGwGWV0KLcGBcCd2UxEvcc9FmSd5nyNGx0k8rcB1Q+0oepcQ3+ZfjrjldVe\nasHxHkgeC+rVzomPbBz9o6XCrYQUWKcz4vMyg4w2mYRlZqVrEjnklDVNbVYs\nE65p3VeZsqwKsbVMDfXQ1VBTUQgD/7RpRFLO/fQkZL0nUNCpKiNpQPctTUqx\nWB6w\r\n=DMz/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"10a622216b5d8e6230ed07b20b0d27bc9d9661e8","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.15","description":"API generator","directories":{},"_nodeVersion":"12.22.7","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.5_1637785917544_0.8284363170618132","host":"s3://npm-registry-packages"}},"0.2.7":{"name":"@appunto/api-on-json","version":"0.2.7","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.2.7","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"1b5d093fe92a7e657e59fefb957c848684d9f4a0","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.2.7.tgz","fileCount":45,"integrity":"sha512-ci1wc3fuhpbdKK7w/jcaacC38HwxLoKQIkVRW5PhTTqa9mtIiu4prpCGA7kWxw+yrNKZxesYLjWL0fo1vaYzyw==","signatures":[{"sig":"MEQCIEXlzCc61x9SluxMn6Nli4Cb3LHfxI/AR20xEyIjNfRXAiAYuzagPIG3yV3cFiAdf1aS20jHBPnq/fEjwAkfxem0SA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjYqiaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPyhAAn5UINtWZ3o+V7QjIzV96ULhnGVGh1MUebmTrJ/qjq6APaOwb\r\n81n0oN1SghWlSnKqHTq9npbsarpU/MjQSLngo8Kgn4DrKtVrlqsTq38imbt/\r\nL7QavaEo00Ukj02Jhv4ZH/uL4B03aRu0Wms9m1iSkGoDpsY+Fj5M+UE8K0YA\r\nRKLE78E85k8POdBDyMPHEFbui1tw3TvV3OMTkvwYwDOhFOP/oypz/QcB+3Pb\r\n2+GE2z4+F2V2ySWs5QD3VuBV2qoIYKejcgdZ0B40qAsQZ0uw4arzDMAsO7lv\r\nszzoGuIBPN+6RbSzAa3RvVsz2hWukVsmKBgZ+h1MnsG8Mfl6rkDgXHqSmTls\r\nSHLRag3NJii0Cq3R9euPQaL8PaAnCEX3kz2mnN8ILs/Z9e1HH/Y8HhHEaL21\r\n9CDa6ktwK5iTGnQyHQyKvwzjaMyNHsHZihauSQagc62cOEFDQutrusmJD4Ax\r\nGNzIGpBWZD7nYS6SKzo4h31lB70rbDjl14zFKwTldmE7tCxlo/ZO4Pe4ZHA1\r\n8aZRhQ6e06rCDSAWCfMexImMqePWahg7bpPf4DXuFbLwZT6mZji2haMT3Lhx\r\nj3ZRGkob7DdWxqhlGFLb+MgyDp1haaC4731uhEc43OeEWS66C8xWPQ9l1J+i\r\n/x/d/bnqUuapL293BtIIydmHNf/KG7s8bvc=\r\n=Q4g9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"10ee30189d7fb293cff29a0bbfc75088698052b2","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^5.7.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.2.7_1667410074421_0.1608886467059094","host":"s3://npm-registry-packages"}},"0.3.0-6":{"name":"@appunto/api-on-json","version":"0.3.0-6","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.0-6","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"f7d0b768422cbf45506ad58e52dbcf5e895ee292","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.0-6.tgz","fileCount":45,"integrity":"sha512-AkKcX1GNJMrXEnV8wz5M0UP0KjfiIvT504efUcoaMvay/cTt1JuqFQDSvOPBd6AOWH2bVn/h4nEdvZGIeFnXhg==","signatures":[{"sig":"MEUCIFkatzwqGOEXZUbjggSpih8GjMFLDRsp99dFDsrupbq/AiEA1XgHpzmuFMQqYzX+FnpyeZHtbeGYMjSvjG23LzUpEcs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7lhBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpScRAAku1DPfPNOPIlN6LQ2u/ouC8jYMjjisvYb5I+C00LdWxtnLOx\r\n2UCghisMyBde3XMPONhdGlSeMHnqOxv8kCqIv9qFuPQL72VK7xxm8gMmoCGg\r\nDxoKogqi7URB028eAvNTS3flBMt/VSNPnTRD4cdoWVXKanGMnH5DoR3D+NsC\r\n4lnwBmMFTEF6/xDdgIiBc1F0kuVcmmbSNbIS7ZNvkYwy6Pve5sY4oZ8/UW8x\r\noCyfxVE7ygAjv/1WwVC7W8DvVIlx/0Y3c8zz8ynZZH/gVeX2FCD18xZKG36r\r\n1hEhUKCqvYhkaPsPe+sit+Q/3PkpFUhdiNuitig9657i3IYiWN6VFEBSFShd\r\n4tjcIRHitqM0u4ABBVw1HCEmuYOzvHznnZmvToKmyY/4oVX2x3ZVlThfaVUR\r\n102laMU4kAp8ZKhj9CgY9u0YegnuzJZ7mq161lCskAD0F3+xEBcg/+LJjZ1e\r\nw1tBykbSQ80cMPNoW9gugDMj43PD816M5XQUz0q0URHNb52vbpV6E48dTv+Z\r\nj5KG0UwMIx9FwV4jjSUDDE1Jr5k0IikB/vAhzAg1vqMndI64WE3vwZh5UWnC\r\n3ABzm0kFnqW2++0Tn/7RYEFHHEl3Ipilv7hoRNZMtjKIXpLdpMFJJMhC2/YS\r\nDNbkjP9yjjt1BPgu/AHqOL2hFRqmoixOY/E=\r\n=cTV9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"40e7fc108b2eef613315abad0536575ee0764188","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.0-6_1676564545377_0.9886184189539078","host":"s3://npm-registry-packages"}},"0.3.0-7":{"name":"@appunto/api-on-json","version":"0.3.0-7","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.0-7","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"a6d5bc2740276128e12864bf13a3e96ff12ec2d5","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.0-7.tgz","fileCount":45,"integrity":"sha512-iWK0Ufc7cLErNzdt7zUJB4akEcAp18udCufOeMe3adzTTCWSoOqMBbqXhyb4f1rLgq4auMCyC7vHkQgImf/w0Q==","signatures":[{"sig":"MEUCIGJ0JszP06vx5k++cTaFiAoqmNtTtoLHJjftbO4a5X+aAiEAsgZMomANvD5X6WCjbq5/pd5iogdwNqFOMdpwt4EgCzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7o/aACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjlQ//ZGPyLpOcZvSlY9feaPTiQraI7j8JG18wQHcGuJ0yYTu1+6aw\r\nxLMIiUMOwMlzr4yCrnYD2zo4YqcQOPwajOP9cwwa8rg7ot4ADwvea6rkD/AV\r\nKQopSLUovZD61Occrm49McFA5OTYDhuxz+YqfKmPd4TGyGKlVxTHUAfeqCQu\r\n/dQlDikctDUPBY2Ioaws7tSSy51N/SvU/OLqn0QmvWGRdIt2jAPLO3Yp7D+U\r\nmvjywaVt6TfpYAcxZJxZxaUroHJYtJYBT8K9XjRE2W1eCuqJY1l5Y1LeUvph\r\n0HhL59qXuosjBfdjFgA8JkjsqZXiBZAujya57CWi7447aWaZsFJTZaSXtpWH\r\nZrFwIikrW8uG0vc7njf8ZpHoplRfRBrc9hbJ+RUbSeZVN9YRUq9DrUW6c/WQ\r\nCj8y+JNtnzYTi1HBSEY0XUeZAgmcn9bQI1ahmB1tMVOXKKGz56AH4I27DYUw\r\nYAR9bKNlwCvUq9usx6cBItJGUvaqn8sWMOHA551QkNKQwxcm1QaCikpgYSeB\r\nF+SqYLVAT5at2fojfbJvekboVZD3++E+goDjggWkr1XDNw4K4WtAdsQkqx/e\r\njfp8gHIfUMqk+u+BvRyUJ1tPiXIpRhbAJm73FKYgCm0BWMbTB/CpTuWLQhWL\r\nQ22Ve1G3Q0NugEpjYwq8fsbTvWQWA6dXQ6w=\r\n=oB6P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"a6400a3464bc203569f5dc1e33067e923830ac67","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.0-7_1676578777789_0.5144862187306132","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@appunto/api-on-json","version":"0.3.0","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.0","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"7e19df3f91fe0013cba94b570d3362b26616b249","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.0.tgz","fileCount":45,"integrity":"sha512-qom9jkfq4qi0qGh0W2C0mj9HUG+hY0sWw8+GUik9QmPjHNBkkEQSfQgSoZ3Cs30Br20EbZj6HeOx/hnNW3YSRg==","signatures":[{"sig":"MEUCIQCAGoKysOgz/7fdwJR8y9F424+zJ6I6oJwMAfboV53XNAIgNgBzN2leVddnnTeSE92YxD3Pq7NF9CsdfDnl60qe7AI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256256,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGXO7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovSQ/8Cu60pIRnfsBW7h5KgHXkfr3JCvNqUuGXY2amOwZUI1pyEZ3G\r\nUlgLFD/O/87gIeq9IYeeoSeeA5N97u9cjjV5rzYWhr/GgTcNvuA8B7C0wx6h\r\nfhQoqu14A5mFsAVWVt8kcfeB9XQ/8ALL3tfOqkgCUZtpGwXbBXG8a8WBzq3w\r\nggi3zS7d5i+YwR2Tt+w9EMSlt4DR4KNsy8lGRPVynwaWRHRfqeW9tbNs88IV\r\nZRLO+qi0jj08Wr7RFYZ8NfUrZT1Pd85bZZVaLnds/HKXB5a/qxs/7oGURhJ1\r\nJp27Bq2S+OkOwyrHwvxLwVkSzs8NvV/sP89NWAS8Q7mZKi2IIAK4VuqpGYF6\r\n4UV4reUMAV7fKgL/hEZ56sxJaejFT6H1fz0uvrR7dF8HOwN9ck489BcghcG+\r\n6GV/WnYCmJztw9gmlOJ1mwBwHEIrOJ+xH+3YqqRucbbipKaKK+2CsVLhypHC\r\nCJgBjvoAIjxq47fNGpn1RAMGO6rZ3rJ0THccmlQkNMSm4bExvqa6NmUzJhDr\r\nMh1rPV6aLMJeeZeDsoUc35QBXh2dYnpR4YIZfotqjTUgEj6YdjzoAdNDRo73\r\nOFbKpm5TiXC/R4ToR3qvUH/uFUiyJcf5LeaHKtrWlJ0H1pj55KHv2ICdeGVh\r\nbCSgAXg4TUU1pIPmpSCyuc3qA4h70z9K+4k=\r\n=WQZl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","types":"types/index.d.ts","gitHead":"279844ded3ba92d09347dd4c31b31d4b5c3a0f30","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.0_1679389626755_0.17936462663806485","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@appunto/api-on-json","version":"0.3.1","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.1","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"4fdab1726bfd8d9c779aabe63f99f8f185daed27","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.1.tgz","fileCount":45,"integrity":"sha512-hfzSyRChmuDPq1YpoF/LqXvTw+jLrZN1gw6Fah+QHHJ219B+PELq2nTefwyUu6r+5O5VvVxxzB5q/SJ6hmebvA==","signatures":[{"sig":"MEUCIDGDXA6vdSqvcpXXub6r56CtRxuaGWhkLwBhPUtNEqeoAiEA4QInklj51B0SqVVQj3KvodPAuDUiVhbggMTS1FPS4Bo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256478},"main":"src/index.js","types":"types/index.d.ts","gitHead":"2af766a8384dd8c0f3cefee3bef5606aef5c57e1","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.1_1683447301166_0.1518106850704002","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@appunto/api-on-json","version":"0.3.2","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.2","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"eff734a691c6fbc2d8cd9e75bddb0ab12afec26a","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.2.tgz","fileCount":45,"integrity":"sha512-4F9zmoI5Soq+5994Thv2azlHD4JbV+PtYBiJ6sbB+pN44Yqz1B5Wqb+C/gZMytX6MOzGP6HisN4YUCqMHxyJ+g==","signatures":[{"sig":"MEYCIQCxF4gDUzvkNVrd55fMNYYO7aAiUaNcYIs+g6qVusHupwIhAL+wtq+R9fms95tnd+pZF12quo8ytRKROMOd9Uiaoluw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":256900},"main":"src/index.js","types":"types/index.d.ts","gitHead":"35c64f3f7cbcf5d764be527188ceb28e0fe87072","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^8.5.1","rethinkdbdash":"^2.3.31","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^6.2.0","dotenv":"^8.1.0","eslint":"^6.5.1","chai-http":"^4.3.0","mongodb-memory-server":"^5.2.3"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.2_1686124593975_0.15979968017626245","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"@appunto/api-on-json","version":"0.3.3","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.3","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"2f6a519635db4e053cfd634b698da545d102f36b","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.3.tgz","fileCount":45,"integrity":"sha512-vO+jhCXpmUBj4mf5DULfCAHr8jrZPgRsul6T+LwI5CeLwpDRK1ww/ah2c5TTorjFNCTXaOGaTn1ob3Tr6NnywA==","signatures":[{"sig":"MEYCIQCrYipn2HB7FxrqZ2XwHV4uuqZheeN/Siw+r1wuf1goNQIhAJojMjhSi8/iTiBwYmo1xLJ7u5yvt5ZqmoEKE832zxAY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":257041},"main":"src/index.js","types":"types/index.d.ts","gitHead":"ea8ff94115a7da4c0951b88802b8ed814c14443d","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^9.0.0","rethinkdbdash":"^2.3.31","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","lodash.isboolean":"^3.0.3","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2","lodash.isplainobject":"^4.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","dotenv":"^8.1.0","eslint":"^8.43.0","chai-http":"^4.3.0","mongodb-memory-server":"^8.13.0"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.3_1688133995089_0.5376762242157807","host":"s3://npm-registry-packages"}},"0.3.4":{"name":"@appunto/api-on-json","version":"0.3.4","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.4","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"9c2be4323c010fd733ee7fd4e83a63a6822754f7","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.4.tgz","fileCount":45,"integrity":"sha512-aUlhA/QsZ7zDxnRFk135V2jPeRZgHJFyFprhfBAo6cRBk0wct9usns0zSHkipeSxzDgAiA3cKxTjrpJrHm7LiQ==","signatures":[{"sig":"MEYCIQDrqlIyQiIdX+Ma0z93sF0sdKcczSbQhKIpoNzHkrfYjgIhAIAzjwilzWBRpsmCBLkj6XbZugxoOF8BD2KN+353kN0L","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":257182},"main":"src/index.js","types":"types/index.d.ts","gitHead":"7b1f9b052b1705e2970881747d197e63656eaf36","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^9.0.0","rethinkdbdash":"^2.3.31","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","lodash.isboolean":"^3.0.3","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2","lodash.isplainobject":"^4.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","dotenv":"^8.1.0","eslint":"^8.43.0","chai-http":"^4.3.0","mongodb-memory-server":"^8.13.0"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.4_1707406755648_0.8218037132404996","host":"s3://npm-registry-packages"}},"0.3.5":{"name":"@appunto/api-on-json","version":"0.3.5","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.5","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"f73f9e825f0aabf171aaf077eeffed56de8f0c45","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.5.tgz","fileCount":45,"integrity":"sha512-4iY370avU2M5WjMO+LiyA8SXn2V2UX2ogrgcMBBVwhtg/srID8s5FmnKaCPuEGSDx4k10m/d6J+4X/Yo3Y49ng==","signatures":[{"sig":"MEUCIFE9pAeHAEnLTNkLyqphcT0Yf6O9+0KgBTsqkbv7hLOSAiEA0l5b8eZph+ml7T5R+yk714a9giq8SVV08JSGsrQyDr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257241},"main":"src/index.js","types":"types/index.d.ts","gitHead":"6f94228198fd487df047b71633a756fca5c7a7c2","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^9.0.0","rethinkdbdash":"^2.3.31","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","lodash.isboolean":"^3.0.3","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2","lodash.isplainobject":"^4.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","dotenv":"^8.1.0","eslint":"^8.43.0","chai-http":"^4.3.0","mongodb-memory-server":"^8.13.0"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.5_1739825638363_0.6156428807032477","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@appunto/api-on-json","version":"0.3.6","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.6","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"f5e52e2c327e897187f00bc40d1e81ff8e26d039","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.6.tgz","fileCount":45,"integrity":"sha512-iMIcjqroQxOHt0nh41V1lOYqq5kCoLScTVIhdrmq55CX3SNt4lm15MwDtgLByuqS8jNXq5TWX6Gty2XBJlG4EQ==","signatures":[{"sig":"MEYCIQCTQKXOlhDAfaJ8nbhvdMzNj3BwOqC0Zo+VUvYhfnOVHQIhAJtxGPIc5qZAtT8HDeURYoARd0ukKDkHuDoitpFhazyX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257315},"main":"src/index.js","types":"types/index.d.ts","gitHead":"c36e5e319db5a6d03a04a26844f4b592f7b0a2a1","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"6.14.16","description":"API generator","directories":{},"_nodeVersion":"12.22.12","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^9.0.0","rethinkdbdash":"^2.3.31","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","lodash.isboolean":"^3.0.3","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2","lodash.isplainobject":"^4.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","dotenv":"^8.1.0","eslint":"^8.43.0","chai-http":"^4.3.0","mongodb-memory-server":"^8.13.0"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.6_1763717414223_0.6093074705861272","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@appunto/api-on-json","version":"0.3.7","keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","_id":"@appunto/api-on-json@0.3.7","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"homepage":"https://github.com/appunto-io/api-on-json#readme","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"dist":{"shasum":"23a027deb3578fc6e8cad32810b4277cc56dcfa9","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.7.tgz","fileCount":45,"integrity":"sha512-NcxMOt7slUSm52vGKyF1sbZEXvxGQRelugNilU81BZK9oTAKX7cK4nWgosXEG35dqugSmK+LLD//cXXD3z2kJQ==","signatures":[{"sig":"MEUCIDuUSlixUgNiHv8eYvSbNfpHJz/X0fSUrZy1idcogohoAiEAnH5brXO8st/MyuxmKibDEDvdttGp740En3Rv4Q+fTJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257510},"main":"src/index.js","types":"types/index.d.ts","gitHead":"c9f8a32be124bbf841f09d2f236384ce65ef8274","scripts":{"lint":"eslint src","test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","single-test":"mocha $1 --timeout 50000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit"},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"repository":{"url":"git+https://github.com/appunto-io/api-on-json.git","type":"git"},"_npmVersion":"10.9.2","description":"API generator","directories":{},"_nodeVersion":"22.14.0","dependencies":{"cors":"^2.8.5","helmet":"^3.21.2","express":"^4.17.1","mongoose":"^6.9.1","socket.io":"^2.3.0","lodash.get":"^4.4.2","lodash.set":"^4.3.2","body-parser":"^1.19.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","jsonwebtoken":"^9.0.0","rethinkdbdash":"^2.3.31","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","lodash.isboolean":"^3.0.3","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","express-query-parser":"1.0.2","lodash.isplainobject":"^4.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^10.2.0","dotenv":"^8.1.0","eslint":"^8.43.0","chai-http":"^4.3.0","mongodb-memory-server":"^8.13.0"},"_npmOperationalInternal":{"tmp":"tmp/api-on-json_0.3.7_1767881623988_0.4924541282681374","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@appunto/api-on-json","version":"0.3.8","description":"API generator","main":"src/index.js","types":"types/index.d.ts","scripts":{"test":"mocha './{,!(node_modules)/**/}*.test.js' --timeout 1000 --exit","test:mongo":"mocha './**/*.mongo.test.js' --timeout 10000 --exit","test:rethink":"mocha './**/*.rethink.test.js' --timeout 1000 --exit","single-test":"mocha $1 --timeout 50000 --exit","lint":"eslint src"},"repository":{"type":"git","url":"git+https://github.com/appunto-io/api-on-json.git"},"keywords":["API","REST","JSON"],"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"homepage":"https://github.com/appunto-io/api-on-json#readme","dependencies":{"body-parser":"^1.19.0","cors":"^2.8.5","express":"^4.17.1","express-query-parser":"1.0.2","helmet":"^3.21.2","jsonwebtoken":"^9.0.0","lodash.get":"^4.4.2","lodash.isboolean":"^3.0.3","lodash.isnumber":"^3.0.3","lodash.isplainobject":"^4.0.6","lodash.isstring":"^4.0.1","lodash.kebabcase":"^4.1.1","lodash.mapvalues":"^4.6.0","lodash.omit":"^4.5.0","lodash.pick":"^4.4.0","lodash.set":"^4.3.2","mongoose":"^6.9.1","rethinkdbdash":"^2.3.31","socket.io":"^2.3.0"},"devDependencies":{"chai":"^4.2.0","chai-http":"^4.3.0","dotenv":"^8.1.0","eslint":"^8.43.0","mocha":"^10.2.0","mongodb-memory-server":"^8.13.0"},"_id":"@appunto/api-on-json@0.3.8","gitHead":"44f38ef919fd727f8a41b9c12ea71a4b1a2ed996","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-7D73mr+h0smildJnK6OIy7Cti23McWaHGohuPa/2p3dYuv3eo9eMEqjTx4z2ojSMcm9pgGEytfcsYdwvtuZD2Q==","shasum":"80f5d4add3663a77ca9d968e59c7bbecf8a6a6f5","tarball":"https://registry.npmjs.org/@appunto/api-on-json/-/api-on-json-0.3.8.tgz","fileCount":45,"unpackedSize":257712,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDNb+jgGCyHsvOhMAL2jbQjyZlq3ZNNz50dFAGGYmHuaQIhAK7mIwj35pMuDiQa1zyeAwEVn2FXBE95JPA/Cpip7ye8"}]},"_npmUser":{"name":"mattia.longhin","email":"mattia@appunto.io"},"directories":{},"maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/api-on-json_0.3.8_1769555761818_0.8603169193882569"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-12T08:23:47.435Z","modified":"2026-01-27T23:16:02.097Z","0.1.9":"2020-06-12T08:23:47.808Z","0.1.10":"2020-06-12T08:46:11.309Z","0.1.12":"2020-06-29T11:55:40.512Z","0.1.13":"2020-06-29T12:22:58.736Z","0.1.14":"2020-07-09T20:28:10.546Z","0.1.15":"2020-07-15T14:14:31.793Z","0.1.16":"2020-08-25T13:32:49.992Z","0.1.17":"2020-08-25T14:28:19.026Z","0.1.18":"2020-08-26T10:35:08.607Z","0.2.0":"2020-10-23T20:15:00.569Z","0.2.2":"2020-11-04T15:45:02.587Z","0.2.3":"2020-11-04T15:57:38.087Z","0.2.4-0":"2021-11-11T21:45:14.748Z","0.2.4-1":"2021-11-12T15:01:06.127Z","0.2.4":"2021-11-24T15:30:17.855Z","0.2.5":"2021-11-24T20:31:57.705Z","0.2.7":"2022-11-02T17:27:54.664Z","0.3.0-6":"2023-02-16T16:22:25.590Z","0.3.0-7":"2023-02-16T20:19:37.984Z","0.3.0":"2023-03-21T09:07:06.970Z","0.3.1":"2023-05-07T08:15:01.357Z","0.3.2":"2023-06-07T07:56:34.157Z","0.3.3":"2023-06-30T14:06:35.334Z","0.3.4":"2024-02-08T15:39:15.959Z","0.3.5":"2025-02-17T20:53:58.554Z","0.3.6":"2025-11-21T09:30:14.437Z","0.3.7":"2026-01-08T14:13:44.143Z","0.3.8":"2026-01-27T23:16:01.969Z"},"bugs":{"url":"https://github.com/appunto-io/api-on-json/issues"},"author":{"name":"Appunto","email":"contact@appunto.io"},"license":"MIT","homepage":"https://github.com/appunto-io/api-on-json#readme","keywords":["API","REST","JSON"],"repository":{"type":"git","url":"git+https://github.com/appunto-io/api-on-json.git"},"description":"API generator","maintainers":[{"name":"mattia.longhin","email":"mattia@appunto.io"}],"readme":"# API On JSON\n\nThis library was build for and is used by [Appunto](https://www.appunto.io) for its own internal projets.\n\n\n# Introduction\n\n*API on JSON* is a Node library that allows the creation of generic REST APIs from a simple JSON configuration file.\n\nThe library was initially though to expose simple MongoDB data models through REST APIs. It was designed to use a descriptive rather than imperative approach: basically you describe your MongoDB data structure in a JSON file, the library does the rest.\n\nIt then evolved into a general purpose library that supports real time, custom callbacks, access control, etc.\n\nDisclaimer : JSON configuration files are technically JS files. We still call them JSON because at the beginning of the projets we only used JSON files.\n\n## Concepts\n\nThe library is structured around three main classes: `Server`, `ApiModel` and `DataModel`.\n\n`Server` creates an ExpressJS server.\n\n`ApiModel` describes the structure of the API. This is passed to the `Server` to create API routes.\n\n`DataModel` is used for the particular (yet common) case where you need to create a API that access data stored in a DB. This class delegates the actual DB access to an external class that implements the vendor specifics CRUD operations. Two DB classes are available : `MongoDB` and `RethinkDB` (for real time use cases).\n\n\n## Sister libraries\n\n- upload-models\n- accounts-models\n- aoj-admin\n\n## Full features example\n```js\nconst { DataModel } = require('@appunto/api-on-json');\nconst { Mongo }     = require('@appunto/api-on-json');\n\nconst mongoUri = 'http://localhost:27017';\n\nconst dataModels = {\n    'cars': {\n      schema: {\n        'brand' : {type : 'String', 'required' : true},\n        'model' : {type: 'String', 'default' : 'Default Model'},\n        'speed' : {type: 'Number', 'min': 0, 'max': 300},\n        'buyable' : {type: 'Boolean'},\n        'constructor_id' : {type : 'Id', collection : 'constructors'}\n      },\n      options: {\n        searchableFields: ['brand']\n      }\n    },\n    'otherTable': {\n      schema: {\n        'color' : {type: 'String'},\n        'whatever' : [{type : 'String'}]\n      }\n    },\n    'constructors': {\n      schema: {\n        'name': {type: \"String\"},\n        'models': [\n          {'car_id': {type: 'Id', collection: 'cars'}}\n        ]\n      }\n    }\n};\n\nconst db = new Mongo(mongoUri, options);\n\nconst opt = {\n  realTime: false\n};\n\nconst dataModel = new DataModel(dataModels);\n\nawait db.connect();\nawait db.init(dataModel);\n\nconst apiModel = dataModel.toApi(opt);\n\nconst env = {\n  db        : db,\n  jwtSecret : \"--your-jwt-secret-key--\"\n}\n\nconst server = apiModel.toServer(env);\nawait server.listen(8081);\n```\n\n\n# Installation\n\n```\nnpm install @appunto/api-on-json\n```\n\n\n# Recipes\n\n## Simple MongoDB Api\n\nTo be documented\n\n## Extending Api\n\n# References\n\n# Server\n\n## `new Server(apiModel, [environment])`\n\nCreates a new `Server` instance. In practice you will probably prefer to use `ApiModel.toServer(...)`.\n\n### Arguments\n\n- `apiModel` is a instance of `ApiModel`\n- `environment` (optional) is an object that can be used to hold environment variables. `environment` object is passed to all Api handlers (see `Api`)\n\n### Example\n\n```js\nconst { Server } = require('@appunto/api-on-json');\n\nconst apiModel = new ApiModel(/* see ApiModel doc */);\nconst environment = {\n  VARIABLE : 'value'\n};\n\nconst server = new Server(apiModel, environment);\n\n```\n\n## `Server.listen(port)`\n\nStarts a server.\n\n### Arguments\n\n- `port` the port to which the server listen to\n\n### Example\n\n```js\nconst server = new Server(apiModel, environment);\nserver.listen(80);\n```\n\n## `Server.close()`\n\nStops a server.\n\n### Arguments\n\n### Example\n\n```js\nconst server = new Server(apiModel, environment);\nserver.listen(80);\nserver.close();\n```\n\n# Api\n\n## JSON model\n\nJSON Api model describes the behavior of the API.\n\nA JSON Api model is composed by a set of route definitions\n\n```js\nconst model = {\n  '/route1' : {/* definition */},\n  '/route2' : {/* definition */},\n};\n```\n\nEach route shall begin with a `'/'`.\n\nRoute can contain :\n\n- `auth` multiple authentication rules for each method:\n  - `requiresAuth` boolean, true if an authentication is needed or false if not\n  - `requiresRoles` list of string enumerating the roles that can be authenticated\n  - `policies` list of function called at the server creation\n\n\n- `handlers` multiple functions executed for each method\n- `filters` multiple functions executed before each method\n- `realTime` multiple functions needed for real-time api:\n  - `connect` list of function called at socket connection\n  - `message` list of function called at socket update\n  - `disconnect` list of function called at socket disconnection\n\n\n- `cors` multiple options pass to HelmetJS (see Helmet doc for more information)\n\n### Example\n\n```js\nconst model = {\n  '/route1' : {\n    auth     : {\n      \"GET\"     : {requiresAuth:false, requiresRoles:false, policies:[policy1]},\n      \"HEAD\"    : {requiresAuth:true, requiresRoles:['role1'], policies:[policy1]},\n      \"OPTIONS\" : {requiresAuth:true, requiresRoles:false, policies:[policy1]},\n      \"POST\"    : {requiresAuth:true, requiresRoles:false, policies:[policy1]},\n      \"PUT\"     : {requiresAuth:true, requiresRoles:false, policies:[policy1]},\n      \"PATCH\"   : {requiresAuth:true, requiresRoles:false, policies:[policy1]},\n      \"DELETE\"  : {requiresAuth:true, requiresRoles:false, policies:[policy1]},\n      realTime  : {requiresAuth:true, requiresRoles:false, policies:[policy1]}\n    },\n    handlers : {\n      \"GET\" : [handler1]\n    },\n    filters  : {\n      \"POST\" : [filter1]\n    },\n    realTime : {\n      \"connect\" : [connectHandler1, connectHandler2],\n      \"message\" : [messageHandler1, messageHandler2],\n      \"disconnect\" : [disconnectHandler1, disconnectHandler2]\n    },\n    cors     : {\n      methods              : \"GET, HEAD, PUT, PATCH, POST, DELETE\",\n      optionsSuccessStatus : 204,\n      origin               : \"*\",\n      preflightContinue    : false\n    }\n  }\n};\n```\n\n\n## `new ApiModel(...apiModels)`\n\nCreates a new `ApiModel` instance.\n\n### Arguments\n\n- `apiModels` 0 or more apiModels, either in JSON or of ApiModel class\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance newly created\n\n\n## `ApiModel.get()`\n\n### Arguments\n\n- None\n\n### Returns\n\n- Returns a merged and compiled apiModel of current state\n\n\n## `ApiModel.addModel(...apiModels)`\n\nAdds apiModels to the ApiModel instance.\n\n### Arguments\n\n- `apiModels` 0 or more apiModels, either in JSON or of ApiModel class\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addModel(/* your models */);\n```\n\n\n\n## `ApiModel.addRoute(route, definition)`\n\nAdd a new route or modify current route's definition.\n\n### Arguments\n\n- `route` path to where to add the definition\n- `definition` different handlers and authentication rules which indicates how the route is handled\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addRoute('/route1', {/*...*/});\n```\n\n\n\n## `ApiModel.removeRoute(route)`\n\nRemove the route in the ApiModel instance.\n\n### Arguments\n\n- `route` path to the location to be removed\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.removeRoute('/route1/subRoute1');\n```\n\n## `ApiModel.addHandler(route, method, handlers)`\n\nAdds one or more `handlers` to the `route` for the `method`\n\n### Arguments\n\n- `route` path to the location\n- `method` method in which the `handlers` will go\n- `handlers` a function or an array of functions to handle the route\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addHandler('/users', 'GET', [handler1, handler2]);\n```\n\n\n\n## `ApiModel.addFilter(route, method, filters)`\n\nAdds one or more `filters` to the `route` for the `method`\n\n### Arguments\n\n- `route` path to the location\n- `method` the `method` in which the `filters` will go\n- `filters` a function or an array of functions to filter the `method` at `route`\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addFilter('/users', 'GET', filter);\n```\n\n\n\n## `ApiModel.setAuth(route, auth)`\n\n### Arguments\n\n- `route` path to the location\n- `auth` definition of the authentication to access `route`\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.setAuth('/users', {requiresAuth: true, requiresRoles: ['admin']});\n```\n\n\n## `ApiModel.setRequiresAuth(route, value)`\n\n### Arguments\n\n- `route` path to the location\n- `value` boolean to able authentication or disable it\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.setRequiresAuth('/users', false);\n```\n\n## `ApiModel.setRequiresRoles(route, roles)`\n\n### Arguments\n\n- `route` path to the location\n- `roles` a string or an array of strings to add roles which can access the `route`\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.setRequiresRoles('/users', ['admin', 'user']);\n```\n\n\n## `ApiModel.addPolicies(route, policies)`\n\n### Arguments\n\n- `route` path to the location\n- `policies` a function or an array of functions which will be called at the `Server` creation\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addPolicies('/users', [policy]);\n```\n\n\n\n\n## `ApiModel.addRealTimeHandler(route, realTimeHandlers)`\n\n### Arguments\n\n- `route` path to the location\n- `realTimeHandlers` a function or an array of functions which will be called with the `socket` in realTime\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addRealTimeHandler('/users', {connect: connectHandler, disconnect: disconnectHandler1});\n```\n\n\n## `ApiModel.addConnectHandler(route, connect)`\n\n### Arguments\n\n- `route` path to the location\n- `connect` a function or an array of functions which will be called at the `socket` connection in realTime\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addConnectHandler('/users', connectHandler);\n```\n\n\n\n## `ApiModel.addMessageHandler(route, message)`\n\n### Arguments\n\n- `route` path to the location\n- `message` a function or an array of functions which will be called on `socket` message in realTime\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addMessageHandler('/users', [messageHandler1]);\n```\n\n\n## `ApiModel.addDisconnectHandler(route, disconnect)`\n\n### Arguments\n\n- `route` path to the location\n- `disconnect` a function or an array of functions which will be called at the `socket` disconnection in realTime\n\n### Returns\n\n- `ApiModel` Returns the ApiModel instance\n\n### Example\n```js\nconst apiModel = new ApiModel();\napiModel.addDisconnectHandler('/users', [disconnectHandler1, disconnectHandler2]);\n```\n\n\n## `ApiModel.toServer(env)`\n\nMerges and compiles the model to create a `Server` from an ApiModel instance.\n\n### Arguments\n\n- `env` object which contains if needed the db and a secret key for JWT\n\n### Returns\n\n- `Server` Returns the server created\n\n### Example\n```js\nconst server = apiModel.toServer(environment);\nserver.listen(80);\nserver.close();\n```\n\n\n# Data\n\n## JSON data model\n\nJSON Data model describes the shape of the data in the database.\n\nA JSON Data model is composed by a set of schema and options.\n\n```js\nconst model = {\n  'collection1' : {\n    schema: {/* definition */},\n    options: {/* definition */}\n  },\n  'collection2' : {\n    schema: {/* definition */},\n    options: {/* definition */}\n  }\n};\n```\n\nEach collection can contain a `schema` and some `options`.\n\nA schema is composed of multiple fields which are made from a `name` and some `specifications`\n\nSpecifications can contain:\n\n- `type` the type of the field, it can be:\n  - `String` indicates that the field is a string\n  - `Number` indicates that the field is a number, integer or float\n  - `Date` indicates that the field is a date\n  - `Boolean` indicates that the field is a boolean, either true or false\n  - `Id` indicates that the field is an id pointing to another collection\n  - `Mixed` indicates that the field is not one of the above\n\n\n- For all types:\n  - `required` boolean which indicates either this field is required or not for validation\n  - `default` an object of the same type that in `type`, use when no value is set for this field\n  - `unique` indicates that this field can't have duplicate value\n  - `index` indicates that the field can be used as an index in the database\n\n- For `String`:\n  - `lowercase` apply toLowerCase() to the string value\n  - `uppercase` apply toUpperCase() to the string value\n  - `trim` apply trim() to the string value\n  - `match` add a validator to the string value and a regex\n  - `minlength` add a minimum validator to the string length\n  - `maxlength` add a maximum validator to the string length\n\n\n- For `Number`:\n  - `min` : indicates the minimum valid number\n  - `max` : indicates the maximum valid number\n\n\n- For `Date`:\n  - `min` : indicates the minimum valid date\n  - `max` : indicates the maximum valid date\n\n\n- For `Id`:\n  - `collection` : string which indicates the collection in which the id is pointing\n\n\nOptions can contain :\n\n\n- `timestamps` allows to disable or modify the dates `createdAt` and `updatedAt` of the data\n- `typeKey` indicates the key used as `type` in the schema.\n- `searchableFields` an array of collection's name that are searchable. An empty array means you can't do research in the database.\n\n### Example\n\n```js\nconst dataModels = {\n    'collection1': {\n      schema: {\n        'field1' : {type : 'String', 'required' : true},\n        'field2' : {type: 'String', 'default' : 'Default Model'},\n        'field3' : {type: 'Number', 'min': 0, 'max': 300},\n        'field4' : {type : 'Id', collection : 'collection3'}\n      },\n      options: {\n        searchableFields: ['field1']\n      }\n    },\n    'collection2': {\n      schema: {\n        'field1' : {type: 'String'},\n        'field2' : [{type : \"String\"}]\n      }\n    },\n    'collection3': {\n      schema: {\n        'field1': {type: \"String\"},\n        'field2': [\n          {'subField1': {type: 'Id', collection: 'cars'}}\n        ]\n      }\n    }\n};\n```\n\n## `new DataModel(...dataModels)`\n\nCreates a new `DataModel` instance.\n\n### Arguments\n\n- `dataModels` 0 or more dataModels, either in JSON or from DataModel class\n\n### Returns\n\n- `DataModel` Returns the DataModel instance newly created\n\n### Example\n```js\nconst dataModel = new DataModel(/* your models */);\n```\n\n\n## `DataModel.get()`\n\n### Arguments\n\n- None\n\n### Returns\n\n- Returns a merged and compiled data model of current state\n\n### Example\n```js\nconst dataModel = new DataModel(/* your models */);\nconst merged = dataModel.get();\n```\n\n\n## `DataModel.addModel(...dataModels)`\n\nAdds data models to the `DataModel` instance.\n\n### Arguments\n\n- `dataModels` 0 or more data models, either in JSON or in DataModel class\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel(/* your models */);\ndataModel.addModel(/* your models */);\n```\n\n\n## `DataModel.addCollection(collection, definition)`\n\nAdds a new collection to the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection\n- `definition` the fields of the collection\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.addCollection('cars', {\n  schema: {\n    'model' : { type: 'String' }\n  },\n  options: {\n    searchableFields: ['model']\n  }\n});\n```\n\n\n## `DataModel.addField(collection, field, definition)`\n\nAdds a new field at collection in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection in which the field will be added\n- `field` the name of the field\n- `definition` the specifications of the field\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.addField('cars', 'brand', {type: String, required: true});\n```\n\n\n## `DataModel.removeCollection(collection)`\n\nRemoves a collection in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection to be removed\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.removeCollection('cars');\n```\n\n\n## `DataModel.removeField(collection, field)`\n\nRemoves a collection in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection in which the field will be removed\n- `field` the name of the field to be removed\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.removeField('users', 'old_username');\n```\n\n\n## `DataModel.setOptions(collection, options)`\n\nSets the options of the collection in the `DataModel` instance.\n\nIf the collection doesn't exist it creates it.\n\n### Arguments\n\n- `collection` the name of the collection\n- `options` the options to be set\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.setOptions('users', {searchableFields: ['username', 'name']});\n```\n\n\n## `DataModel.setType(collection, field, type)`\n\nSets the type of a field in the given collection in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection\n- `field` the name of the field\n- `type` the new type of the field\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.setType('users', 'username', 'String');\n```\n\n## `DataModel.setRequired(collection, field, value)`\n\nSets if the field in collection is required or not in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection\n- `field` the name of the field\n- `value` boolean, true if it is required, false if it is not required\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.setRequired('users', 'username', true);\n```\n\n\n## `DataModel.setUnique(collection, field, value)`\n\nSets if the field in collection is unique or not in the `DataModel` instance.\n\n### Arguments\n\n- `collection` the name of the collection\n- `field` the name of the field\n- `value` boolean, true if it is unique, false if it is not unique\n\n### Returns\n\n- `DataModel` Returns the DataModel instance\n\n### Example\n```js\nconst dataModel = new DataModel();\ndataModel.setUnique('users', 'username', true);\n```\n\n## `DataModel.toApi(opt)`\n\nMerges and compiles the model to create an `ApiModel` from a DataModel instance.\n\n### Arguments\n\n- `opt` object which contains if needed the collections with realTime\n\n### Returns\n\n- `ApiModel` Returns the ApiModel created\n\n### Example\n```js\nconst apiModel = dataModel.toApi({realTime: ['collection1', 'collection3']});\n```\n\n# Database\n\nIn api-on-json you can add the handling of your database.\n\nBy default the library handle MongoDB and RethinkDB.\n\nYou can add a DB of your own, you just have to create a new DB class and write those methods:\n- `connect` handle the connection with your db\n- `init` init the list of data models\n- `create` for POST request\n- `remove` for DELETE request\n- `readOne` for GET id request\n- `readMany` for GET request with queries\n- `update` for PUT request\n- `patch` for PATCH request\n- `observe` for realTime (if your db handle it)\n\n## `Mongo`\n\nThe class which handles mongoDB Api\n\n### Example\n```js\nconst db = new Mongo(/*mongoUri*/, options);\n```\n\n## `Rethink`\n\nThe class which handles rethinkDB Api\n\n### Example\n```js\nconst db = new Rethink(\"localhost\", \"28015\", \"G\");\n```\n\n## How to create a new database class\n\nLater on, you might want to use your favorite database for your api,\nand if we didn't implement it, you will need to add it yourself!\n\nBut don't worry, here is how to do it!\n\n### First Step: Make a constructor\n\nFirst you will need a constructor to create your db instance\n\nYou will need 3 things:\n- all the parameters you need to connect to your db (an url, options ...)\n- a database field where you will put your db object (for mongoDB: mongoose, for rethinkDB: r)\n- a models list we will use it later, this will be the array where all the models used in your api will be\n\n```js\nclass YourDB {\n  constructor(url, options) {\n    this.url      = url;\n    this.options  = { ...options};\n    this.database = null;\n    this.models   = [];\n  }\n}\n```\n\n### Second Step: Make a connect method\n\nAfter that you will need a connect method, called by our library when the dataModel is compiled.\nYou should set `this.database` to its value (return by the connection call of the database you are using).\n\n### Third Step: Make an init method\n\nYou will also need an init method, called by our library just after connect.\nHere the goal is to setup your database for the dataModel you have created before.\nThat means if needed create:\n- tables\n- collection\n- schema\n- etc\n\n### Fourth Step: Create all CRUD actions\n\nThe final step and the hardest, you will have to create each of the following callbacks.\nAll are required (except for `observe` which handles the realTime).\n\n- `create(collection, data)`\n\n  Your create method is the one called on a POST request to your api.\n\n  You will need to get the model corresponding to the collection first.\n  Then verify that the data you received is according to your model (i.e type, options etc).\n  If all was validate you can then add it to your database.\n  If all went fine, you can return the JSON of the new entry added to your db.\n\n- `remove(collection, id)`\n\n  Your remove method is the one called on a DELETE request to your api.\n\n  You only need to request a deletion of the entry at the given `id` in the database.\n\n- `readOne(collection, id)`\n\n  Your readOne method is the one called on a GET request with an id to your api.\n\n  You need to return the entry at the given `id` in the database.\n\n- `readMany(collection, query)`\n\n  Your readMany method is the one called on a simple GET request or on GET with query request to your api.\n\n  You will first need to parse the query parameter. You will find different object.\n\n  `page` and `pageSize` are used for pagination, the number of page is determined by the number of elements in the db and the pageSize.\n\n  `sort` is a string looking like '`field`,`order`' or an array of those string.\n  The results returned by readMany should be sorted according to those strings,\n  by field and either in descending or ascending `order`(ascending by default).\n\n  `cursor` is used for pagination too, it is the last `id`\n  or a combination of the last `id` and the sorting method used at the previous GET request.\n\n  `q` is used for searching in the db all elements that have a field that match a value.\n  For example all elements that have at least one field starting with 'Tar'. We would get 'Tartine', 'Tarami' etc.\n  Note that you only have to search in the searchableFields, if the user wants to research an other fields he should\n  use the `f` parameter described after.\n\n  `f` allows to have all values between a min and a max, it's an array of a `fieldName`,\n  a `comparator` from this list 'lt, le, gt, ge' and a `val` that will be the bound.\n\n- `update(collection, id, data)`\n\n  Your update method is the one called on a PUT request.\n\n  You will need to get the model corresponding to the collection first.\n  Then verify that the data you received is according to your model (i.e type, options etc).\n  If all was validate, you will have to replace the existing element in the db with the new one.\n  Then return the newly created element.\n\n- `patch(collection, id, data)`\n\n  Your update method is the one called on a PATCH request.\n\n  You will need to get the model corresponding to the collection first.\n  Then verify that the data you received is according to your model (i.e type, options etc).\n  If all was validate, you will have to change the existing element in the db with only the fields in data.\n  Meaning that it should not raise an error if a required field is omit in data,\n  because this field will just keep its previous value\n  Then return the newly created element.\n\n- `observe(collection, query, params, socket, callback)`\n\n  This is the method use to put an observer to your db when you are using the realTime.\n  Note that all database are not compatible with that features.\n  In this method you will have to set up the way your realtime works (for example changefeeds in rethinkDB).\n  Then the callback you will use is here to pair the socket for realTime.\n\n  See observe in `Rethink` class for more information.\n\n\n# Tests\n\nDifferent tests exist, to run the tests suite:\n\n```\nnpm run test\n```\n\nYou can also run a single test file with:\n\n```\nnpm run single-test ${path}\n```\n","readmeFilename":"README.md"}