{"_id":"parseable","_rev":"34-ef24e7fa3ba612cd54d48e53cba85d49","name":"parseable","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","dist-tags":{"1.0.0":"1.0.0","latest":"1.0.16","1.0.1":"1.0.1","1.0.2":"1.0.2","1.0.4":"1.0.4"},"versions":{"1.0.0":{"name":"parseable","version":"1.0.0","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms. It is influenced by the features provided by the LoopBack and Parse.com Backend-as-a-Service platforms. Parseabl","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.0","_shasum":"80e26ab02da6cb9955e80e35d8fd0fde87a09619","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"80e26ab02da6cb9955e80e35d8fd0fde87a09619","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.0.tgz","integrity":"sha512-bjalyp8iuuFr/79vOStPCu4ygaq9qwvphA9PPYDUek8PRaIrDTxfoiYa+X5va2DSNwq8qnGa/EJUgKwkWpRN/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEYvuhMGxX5YaaZBPKahqlXSuT9VR116593W5TvkN9BaAiBwfkENZAN8AviTZsOeiu34Fk2BrVDgKOMm00Mo5AOmzg=="}]}},"1.0.1":{"name":"parseable","version":"1.0.1","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms. It is influenced by the features provided by the LoopBack and Parse.com Backend-as-a-Service platforms. Parseabl","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.1","_shasum":"3c3718bcb20cb2dab8755058928e9adccc772c16","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"3c3718bcb20cb2dab8755058928e9adccc772c16","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.1.tgz","integrity":"sha512-bsQjsX2tR76wuRHwc4L2R2sfOh7kmOBoy6uf7sVDNxuuggDQ3yIzCwIUo84KFdFwnMFylkWrv4L0OYB0MS4nFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkLrb3zRZ+zYzmTJKoknQved6FT6bNwW0GmvSqSO6OZgIhAN3X2yDUfXDtB3JF0R/qbZ3C50iuBiK5LTm3Vtb68gt8"}]}},"1.0.2":{"name":"parseable","version":"1.0.2","description":"Parseable =============","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.2","_shasum":"b098f39adaabf41c0ca5401bfb23610297bf91ce","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"b098f39adaabf41c0ca5401bfb23610297bf91ce","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.2.tgz","integrity":"sha512-8wrlmxJbTvhBv/Q8bwkR5yTUJ6yyOWaHt4TXFnNoDvgcAgTJcBYToK964L3dlRnC/dGWbf4wLXSqHOr3XZGWCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDMa0azqOv18Uzn6SthR6KpGLEdEcIV7lifRJtwupfmKAiBxXj22OP1wrnbnMUv4PJn5NOXU7Co/JM05XrGqOPzHwQ=="}]}},"1.0.4":{"name":"parseable","version":"1.0.4","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.4","_shasum":"da68b52d031d199880ca6f3bdafc0adbbeb15fd0","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"da68b52d031d199880ca6f3bdafc0adbbeb15fd0","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.4.tgz","integrity":"sha512-i8RfjntrHViIzdzKRzYTiK1VRIocuWEEh7liyfk5s7YO1zTInT2dnUc1OiMD5Xp7qtJdShAfLlEwkfehJdj+4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3AiNCnWDcNeM10PQO8dj26l2H1RJ8OA+hSgh+7/FqcAIhAOdr3OLnBYujAuzMe9q2z6qBIuS40oL2DaTnJWDohV7N"}]}},"1.0.5":{"name":"parseable","version":"1.0.5","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"f5a05634cffecee7a0ecab888cef0d241162e4ee","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.5","_shasum":"1917bd7e85962e16cb76fb2de20518c0cca060a7","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"1917bd7e85962e16cb76fb2de20518c0cca060a7","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.5.tgz","integrity":"sha512-H+3xlQG3Z4LkOlZ1dDpw5xJVybnzAC418se1GlYdyOxJKX2Lt4dToj/ZDsDPm/duZyBlY77zsjIWSIPj0XTang==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCudspRmVTZzyMp2cpGLhBFF9tcxNmgolo2wwZNSXfIUQIgS4pwcAS2OSlBrH/UqGs7slc5puzjFyuPYN/1g7ZMLpw="}]}},"1.0.6":{"name":"parseable","version":"1.0.6","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"39e3de0ad5ba3da82bb6d5f1dd62733d82d6ca61","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.6","_shasum":"9b6dc0555f232d81af909dcfc207e30746d06837","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"9b6dc0555f232d81af909dcfc207e30746d06837","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.6.tgz","integrity":"sha512-jRo+UfvFj0MSD1LC6q4F94X5Ph0BKuip7JN4GwUfSCYkAMCTBZwJVuQrzbtZAQWxqV/hG/MfwAS/bMJy/wz19Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEq8jXH+MbQzCliqWSaDgvRiPqKkRQjGqW9koYoNp95mAiEA2r0Lc7lwvpbRH4ZsukJ+ASgZOBr4UVZgXA9ezVMFEJE="}]}},"1.0.7":{"name":"parseable","version":"1.0.7","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"d2ec699c672ab7d9e5376be945c14a65855a83bf","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.7","_shasum":"a81f28bd0b211c244f4a1e3a6803a349ca6887a5","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"a81f28bd0b211c244f4a1e3a6803a349ca6887a5","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.7.tgz","integrity":"sha512-TGeVdgq7Q67N6bCmDpgTeUJ9TX/YkyvZL+EqUXYZ7aOJZpOPESfRyCoZcpBodOvq6iHZ6szAgfGhz5Y+feWXjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQrp1y4jL/f9zKtrV0rb6/THL/w1Y9nxV/Ne1vl0UP5AiEAxyuKffvqJ47aY5gJ2MRtEsZUwxAMhYQ/fK9Pyo59zz8="}]}},"1.0.8":{"name":"parseable","version":"1.0.8","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"d2ec699c672ab7d9e5376be945c14a65855a83bf","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.8","_shasum":"52816695658ae6d765fa6da2694249c5817718fb","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"52816695658ae6d765fa6da2694249c5817718fb","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.8.tgz","integrity":"sha512-xvzGH18+nGGbSfns6Zn+RSbg9nN6u+CzcmVfnSzpoiVpQwD/BMC0k+vQdWgmbClIRlfmg1gieekbpQG47cU3qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCKxeMcs71UObD96a+van2yBUqn3qRJ3Pep9c2m3ASfAIgFC6eaBlQRa53DWbuL94xgFC8goq+5ZCOh+OY32Cgtwg="}]}},"1.0.9":{"name":"parseable","version":"1.0.9","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"d63f0a07688d5f9b3d709c108d34433814ff5e39","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.9","_shasum":"8595d2edddbf3e37619bde222663b2993270a8d2","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"8595d2edddbf3e37619bde222663b2993270a8d2","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.9.tgz","integrity":"sha512-yslMZIeEneQRtgAan3LGsB2vUwAvKoHboLLkCpOYTOABNYHc4NIIPxeWUOhoBotqgYRIW38f7rY3Ja57fQ9hHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMKohIOs7hyLARnOCuQ1VC3nIOWXq66ZCbkZLIroGYqQIgZ4ZLf3xm3GI7Qe84CBgNifWYJo7riB9N0+Y6r4Jm5H4="}]}},"1.0.10":{"name":"parseable","version":"1.0.10","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"d63f0a07688d5f9b3d709c108d34433814ff5e39","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.10","_shasum":"6e67b3b52c7c579d388ca73c2d72679cd3886d2b","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"}],"dist":{"shasum":"6e67b3b52c7c579d388ca73c2d72679cd3886d2b","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.10.tgz","integrity":"sha512-rrfw+tPyAuVFiqqXXzM3q9dm+EQNefDFtlpY5fWeFjfNt4QuWFc5BnsSH6p8kyjK/IN+Zi2lX/rZjljJ9oxSrw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAI0XkxHj3bplRVDftNMwr1cdmk5vaIQPlMgTFBQq1iEAiBi8nwWyPYZsNH8JeZuY2++uWGuOftFn1cbtgLevdh9TA=="}]}},"1.0.11":{"name":"parseable","version":"1.0.11","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"5a53edb5cf86c10a39678d6245f6220d6d949d50","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.11","_shasum":"1694f69bdd99d860354bc81bc181bbdba09fe0aa","_from":".","_npmVersion":"2.1.4","_nodeVersion":"0.10.28","_npmUser":{"name":"fytsai","email":"fengyi.tsai@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"1694f69bdd99d860354bc81bc181bbdba09fe0aa","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.11.tgz","integrity":"sha512-EYoMXlEEk/qyGjwDSqD7VZWmnFjZboNniE+wiqRwYJQg5s2QesAIRrZd8YfiKjsOO9ig8/lxdCznpA1j7gn7Jg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFynilbxx3P3zVJplLtAjWkpwmwStDRXCYtTHXqntFIQAiAYBOqWkcAXmJGPV13DxAsxSHvuXrMsAU+gxa/nedZ0Eg=="}]}},"1.0.12":{"name":"parseable","version":"1.0.12","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"734bf7b16a843950249e6edcdcce9e04df959697","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.12","_shasum":"972663c827e5ec8f22421dd66d07796e3e4627bf","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sshen81","email":"sshen81@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"972663c827e5ec8f22421dd66d07796e3e4627bf","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.12.tgz","integrity":"sha512-BAU1E/yONHlFmg/v0l34rHybwajEWevF/GnEvuSvB7LSlvdmIv8QzT6Wgr2o6K87hVsfL6/FxKo0Jhhtxfatog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDloPo5kVCULvYSc71uynyD4d9V2c+ST23MYZrWAvvyWwIhAKZr5FpGO7zwNbgn07YhaEbY7YYz0iISoFus+uUh2Q1h"}]}},"1.0.13":{"name":"parseable","version":"1.0.13","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"4188c93deadedb5a8227430b02a0b7033ab5a828","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.13","_shasum":"50fc9f729d56372df0d4975b5c80c908ab6ef742","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sshen81","email":"sshen81@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"50fc9f729d56372df0d4975b5c80c908ab6ef742","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.13.tgz","integrity":"sha512-jECU28BxXQwdP7STlkKelyEYVj4Ep9vYD+7+yQn+WSQdzZbn14Xw4fCUjhKjm+44N3MOmSg4Dnrj7KhE2q8S7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMXEz/9JBTtIyd43a1MGrp8pgb0UhO4DKsODYT1EpTSgIhAKpi0zdeOgSpKNrztyTlmEqRMMJaAxoHqJvdkoSkfm0L"}]}},"1.0.14":{"name":"parseable","version":"1.0.14","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"c93649c9f0903e8f9cbbe84807baef8156c24041","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.14","_shasum":"5bca17b9d01f5503b65b56ca1fdf1d701663e5e6","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sshen81","email":"sshen81@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"5bca17b9d01f5503b65b56ca1fdf1d701663e5e6","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.14.tgz","integrity":"sha512-6g7+SEISMVPRfsKsmlv5EMq4Eh7SaaK0PaZuu+n7oGdnEsRCHJ7G8AdO1FbrqpjWgarnr7E8AgJ7BWcM4CjI3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGskOI8aiOmi8OXmXvd4lbRjLwgoxQZGSYmSyNjOX1r8AiBXia2qkiJmlGbzEBITitYq4ztrIJsEbGa6hyzeBgoSqw=="}]}},"1.0.15":{"name":"parseable","version":"1.0.15","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"6f291f8f5a65f191aba8ffaf87d9c1b21bb61252","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.15","_shasum":"5b5591503ed3893b87ea18b729d145013e87fb48","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sshen81","email":"sshen81@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"5b5591503ed3893b87ea18b729d145013e87fb48","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.15.tgz","integrity":"sha512-Duk1hCSnk32KhEKau0pL1sJ4gHFAnlMHgh4p5oOoJKl5NHGsweS9hh17hMKHCNFdYjTnyqGAOOrJS8Rsv3nceA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH/B7rsUTiWoiKCQd0oVnCSTa1vMw9Y4l9awsf8AjnLAIhAMmi5i7xDQI2yVCzSZM24vPdiGayzh9trlHfxB0c+h2U"}]}},"1.0.16":{"name":"parseable","version":"1.0.16","description":"Parseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms.","author":{"name":"Fengyi Tsai"},"main":"index.js","keywords":["parseable","parser"],"engines":{"node":"*"},"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"licenses":[{"type":"MIT","url":"https://github.com/LiveRelay/Parseable/blob/master/LICENSE"}],"scripts":{"test":"mocha -w ./ test/*.js"},"dependencies":{"mocha":"^1.21.4","should":"^4.0.4","supertest":"^0.13.0"},"gitHead":"599140be640af55b5f425bc89d6723d18c71f3dc","bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"homepage":"https://github.com/LiveRelay/Parseable","_id":"parseable@1.0.16","_shasum":"4a47a27eae578014db0bff03a5197ff0e2a7fd7c","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"sshen81","email":"sshen81@gmail.com"},"maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"dist":{"shasum":"4a47a27eae578014db0bff03a5197ff0e2a7fd7c","tarball":"https://registry.npmjs.org/parseable/-/parseable-1.0.16.tgz","integrity":"sha512-SRvIp9/3R1206+dQsIJYSQ2JtUQ4WNCiUHdPmFj9uLISBPpYXCp0saC+WBpHMk+G4DENdxx42WLXcQ0Uj18k0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6xdqrbykrolvcAKXemh8xeoswkfqC/meOQx2qQHXbXAiBv8C98a/6QyjXwqDLBnojoYyHG2XqnjIQFqk8B+AQBdg=="}]}}},"readme":"Parseable\n=============\n\nParseable allows NodeJS developers to build REST API applications with client-driven (ad hoc, dynamic) queries similar to noBackend platforms. It is influenced by the features provided by the LoopBack and Parse.com Backend-as-a-Service platforms. Parseable can parse RESTful API endpoint queries into properly structured [MongoDB](http://www.mongodb.org) syntax.\n\n\n\n##Parseable Middlewares\n\n### middleware\n- invokes operationMiddleware and filterMiddleware in sequence\n\n### operationMiddleware\n- parse req.body with operationParser\n\n### filterMiddleware\n- parse req.query with whereParser, sortParser, limitParser, skipParser, and keysParser in sequence\n\n### default values\nIf req.query does't contain property \"limit\", Parseble will add it to req.query with value 200.<br />\n<br />\nThe default value can be changed, e.g.:\n```javascript\n  var defaultValues = require('parseable').defaultValues; \n  defaultValues.limit = 100;\n```\n\n### Example of using Parseable as a middleware:\n```javascript\n  var parseable = require('parseable').middleware;  \n  var router = require('express').Router();\n    \n  router.get('/', function(req, res, next) {\n    //raw request:\n    console.log(req.query);//{\"where\":{\"a1\":{\"b1\":{\"c1\":{$gt:10}}}},\"sort\":{},\"skip\":0,\"keys\":\"a,b,-c\"}\n    next();\n  });\n  \n  router.get('/', parseable, function(req, res) {\n    //after:\n    console.log(req.query);//{\"where\":{\"a1.b1.c1\":{$gt:10}},\"sort\":{},\"limit\":200,\"skip\":0,\"keys\":{a:1,b:1,c:0}}\n  });\n```\n<br />\n```javascript\n  var parseable = require('parseable').middleware;  \n  var router = require('express').Router();\n    \n  router.put('/', function(req, res, next) {\n    //raw request:\n    console.log(req.body);//{\"field\":{\"__op\": \"Increment\", \"amount\": 1234}}\n    next();\n  });\n  \n  router.put('/', parseable, function(req, res) {\n    //after:\n    console.log(req.body);//{$inc:{\"field\":1234}}\n  });\n```\n<br />\nMultiple Operation:\n```javascript\n  var parseable = require('parseable').middleware;  \n  var router = require('express').Router();\n    \n  router.put('/', function(req, res, next) {\n    //raw request:\n    console.log(req.body);//{\"field\":{\"sub_field1\":{\"__op\": \"Remove\", \"object\": {\"a\":1}},\"sub_field2\":{\"__op\": \"Increment\", \"amount\": 1234}}, \"field2\":{\"__op\": \"AddUnique\", \"objects\": [1,2,3]}}\n    next();\n  });\n  \n  router.put('/', parseable, function(req, res) {\n    //after:\n    console.log(req.body);//{\"$pull\":{\"field.sub_field1\":{\"a\":1}},\"$inc\":{\"field.sub_field2\":1234},\"$addToSet\":{\"field2\":{\"$each\":[1,2,3]}}}\n  });\n```\n<br />\n<br />\n## Parseable functions\n\n### Parseable.operationParser\n\n```javascript\n  var operationParser = require('parseable').operationParser; \n  \n  var input = {\"field\":{\"__op\": \"Increment\", \"amount\": 1234}};\n\n  operationParser(input,function(err,output){\n    console.log(output); // {$inc:{\"field\":1234}}\n  });\n\n```\n\n - Increment: increment a number field\n>        input:  {\"field\":{\"__op\": \"Increment\", \"amount\": 1234}}\n>        output: {$inc:{\"field\":1234}}\n\n - Add: add objects to array field\n>        input: {\"field\":{\"__op\": \"Add\", \"objects\": [1,2,3]}}\n>        output: {$pushAll:{\"field\":[1,2,3]}}\n\n - AddUnique: add objects if not existed\n>        input: {\"field\":{\"__op\": \"AddUnique\", \"objects\": [1,2,3]}}\n>        output: {$addToSet:{\"field\":{$each:[1,2,3]}}}\n\n - Remove: removes from an existing array all instances of a value or values that match a specified query\n>        input: {\"field\":{\"__op\": \"Remove\", \"object\": {\"a\":1}}}\n>        output: {$pull:{\"field\":{\"a\":1}}}\n\n - RemoveAll: remove objects from array field\n>        input: {\"field\":{\"__op\": \"RemoveAll\", \"objects\": [1,2,3]}}\n>        output: {$pullAll:{\"field\":[1,2,3]}}\n\n - Delete: delete a field\n>        input: {\"field\":{\"__op\": \"Delete\"}}\n>        output: {$unset:{\"field\":\"\"}}\n\n - Set: replaces the value of a field to the specified value.\n>        input: {\"field\":123}\n>        output: {$set:{field:123}}\n\n### Parseable.whereParser:\n```javascript\n  var whereParser = require('parseable').whereParser; \n  var input = {\"a1\":{\"b1\":{\"c1\":1}}};\n\n  whereParser(input,function(err,output){\n    console.log(output); // {\"a1.b1.c1\":1}\n  });\n\n```\n\n>        input: {\"a1\":{\"b1\":{\"c1\":1}}}\n>        output: {\"a1.b1.c1\":1}\n>\n>        input: \"{\\\"a1\\\":{\\\"b1\\\":{\\\"c1\\\":1}}}\"\n>        output: {\"a1.b1.c1\":1}\n>\n>        input: {\"a1\":{\"b1\":{\"c1\":[1,2,3],\"c2\":\"abc\"},\"b2\":1},\"a2\":1}\n>        output: {\"a1.b1.c1\":[1,2,3],\"a1.b1.c2\":\"abc\",\"a1.b2\":1,\"a2\":1}\n>\n>        input: \"{'a':123}\"\n>        err:  SyntaxError\n\n\n### Parseable.sortParser :\n\n```javascript\n  var sortParser = require('parseable').sortParser; \n\n  var input = {\"a1\":{\"b1\":{\"c1\":1}}};\n\n  sortParser(input,function(err,output){\n    console.log(output); // {\"a1.b1.c1\":1}\n  });\n\n```\n\n>        input: {\"a1\":{\"b1\":{\"c1\":1}}}\n>        output: {\"a1.b1.c1\":1}\n>\n>        input: \"{\\\"a1\\\":{\\\"b1\\\":{\\\"c1\\\":1}}}\"\n>        output: {\"a1.b1.c1\":1}\n>\n>        input: {\"a1\":{\"b1\":{\"c1\":1},\"b2\":-1},\"a2\":1}\n>        output: {\"a1.b1.c1\":1,\"a1.b2\":-1,\"a2\":1}\n>\n>        input: {\"a1\":{\"b1\":{\"c1\":[1,2,3]}}}\n>        err: \"bad sort specification: 1,2,3\"\n>\n>        input: {\"a1\":{\"b1\":{\"c1\":1},\"b2\":0}}\n>        err: \"bad sort specification: 0\"\n>\n\n\n### Parseable.limitParser \n### Parseable.skipParser\n\n```javascript\n  var limitParser = require('parseable').limitParser; \n  var skipParser = require('parseable').skipParser; \n  \n  var input = 123;\n\n  limitParser(input,function(err,output){\n    console.log(output); // 123\n  });\n\n```\n\n>        input: 123\n>        output: 123\n>\n>        input: \"123\"\n>        output: 123\n>\n>        input: 2147483649\n>        err: value out of range\n>\n>        input: -2147483649\n>        err: value out of range\n>\n>        input: \"123a\"\n>        err: SyntaxError\n>\n>        input: \"{limit:123}\"\n>        err: SyntaxError\n\n\n\n### Parseable.keysParser\n\n```javascript\n  var keysParser = require('parseable').keysParser; \n  \n  var input = \"foo,-koo\";\n\n  keysParser(input,function(err,output){\n    console.log(output); // {\"foo\":1,\"koo\":0}\n  });\n\n```\n\n>        input: \"a,b,c,-d\"\n>        output: {a:1,b:1,c:1,d:0}\n>\n>        input: \"a,b,c,,,\"\n>        output: {a:1,b:1,c:1}\n>\n>        input: 123\n>        err: \"SyntaxError: keys is not string\"\n","maintainers":[{"name":"fytsai","email":"fengyi.tsai@gmail.com"},{"name":"sshen81","email":"sshen81@gmail.com"}],"time":{"modified":"2022-06-23T11:21:01.828Z","created":"2014-09-16T11:44:57.327Z","1.0.0":"2014-09-16T11:44:57.327Z","1.0.1":"2014-09-16T14:43:19.704Z","1.0.2":"2014-10-01T04:01:29.139Z","1.0.4":"2014-10-02T05:32:42.457Z","1.0.5":"2014-10-24T07:06:05.568Z","1.0.6":"2014-10-24T07:50:17.268Z","1.0.7":"2014-10-24T09:16:07.233Z","1.0.8":"2014-10-28T02:02:56.445Z","1.0.9":"2014-10-29T02:01:56.982Z","1.0.10":"2014-10-29T02:21:41.475Z","1.0.11":"2014-11-10T02:16:55.032Z","1.0.12":"2014-11-18T20:17:28.337Z","1.0.13":"2015-03-19T00:14:21.586Z","1.0.14":"2015-05-28T22:06:25.226Z","1.0.15":"2015-06-02T18:25:24.411Z","1.0.16":"2016-01-28T23:58:02.509Z"},"homepage":"https://github.com/LiveRelay/Parseable","keywords":["parseable","parser"],"repository":{"type":"git","url":"https://github.com/LiveRelay/Parseable.git"},"author":{"name":"Fengyi Tsai"},"bugs":{"url":"https://github.com/LiveRelay/Parseable/issues"},"readmeFilename":"README.md","users":{"fytsai":true}}