{"_id":"abstraction","_rev":"36-2aee5ea751e8d8bea79791b4e4d33c1e","name":"abstraction","description":"A library for modeling abstract business logic or wrapping data structures.","dist-tags":{"latest":"11.0.0"},"versions":{"1.0.0":{"name":"abstraction","version":"1.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"dist/index.js","scripts":{"build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"6bae63aea707912f1bafcab5c39e409ea2b6e722","_id":"abstraction@1.0.0","_shasum":"cdf2c86549dea3e3f47bf121054d7edda6af05d9","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"cdf2c86549dea3e3f47bf121054d7edda6af05d9","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-1.0.0.tgz","integrity":"sha512-5KIUfeloIvdv4/ex5pa4M+xXcDpurmA6DzahrlLMAYLFGlRrO9U/iHU2mjJQquC5KE2K9g/nXPYM3MCMOqA56w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLyUi6OsipatcARIlk7RnffGmQuow5LV2sFIQmej7H0AIhAM86LfmEZQWTPlM9t0UMPrm8coQcFIwDS4XLI3yPdRUG"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-1.0.0.tgz_1464023061844_0.6278140053618699"}},"1.0.1":{"name":"abstraction","version":"1.0.1","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/index.js","scripts":{"build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"27686e67d26288d354c82124cd86f47a9f954b4c","_id":"abstraction@1.0.1","_shasum":"bd84f89cf643b0387f4bf3e6749e461b557c8322","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"bd84f89cf643b0387f4bf3e6749e461b557c8322","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-1.0.1.tgz","integrity":"sha512-XuNjlWT9c0UkCfLxkrtXweofTsclN1GenOhO+c9xOku29bv9kqnN2eejfOqNIfnWCHwXiLGl4mYn9CKbXXKIwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSLfwxq4b+80MVFQlbhA3bqno+S+YiB9VfLjIvydDpPgIgMmo+XnNpTc34kdkrDqfjg9oySVWXH9R48SyaTLz2QQQ="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-1.0.1.tgz_1465233161029_0.1476211070548743"}},"1.0.2":{"name":"abstraction","version":"1.0.2","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"ef1c48aabf2ad33cd39723666cc32bb6999aaeff","_id":"abstraction@1.0.2","_shasum":"2e484d289cf3d7da167f09dcab4e2e006dfd2376","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"2e484d289cf3d7da167f09dcab4e2e006dfd2376","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-1.0.2.tgz","integrity":"sha512-MZJ1NutsFF6LTEXJdxfA5rsRmFqxNqfqTdVeccNdj4Dz05/8gQ4Wn7LP69F9/zSduYwJwmDRwtlfqoQnctFj9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiCywyZ5z0PFxn34AJmcNjrNYeKfWgh849TIiXvxBRvAIgS+y4vPgBWuCCapY/jKcicayDeEEoHdb1iF9Qg0oKvK8="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-1.0.2.tgz_1465233307781_0.3880745372734964"}},"1.0.3":{"name":"abstraction","version":"1.0.3","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"d77e3712d30e708f24cab88575a34ef865b9c571","_id":"abstraction@1.0.3","_shasum":"310e0a942c343ecd97eabacadcda1a32e9e0b39c","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"310e0a942c343ecd97eabacadcda1a32e9e0b39c","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-1.0.3.tgz","integrity":"sha512-YLwKlncvMenYnYWiU+hb1hj5pmKvpekNBhPF7sHeivS/8gTutWdWZPUXw6GegL3qfYJkThUV+HlQK676Mf6rYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDA9ecMAzsRg6h+DTTSU72hbOclp5r6uDK7vQWnGLCe1QIgCvCFK9UvmFqKgWiTErT6rtuJFXxykZxjg1npigSW3Xg="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-1.0.3.tgz_1465234056625_0.33303169813007116"}},"2.0.0":{"name":"abstraction","version":"2.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"f8c40f42389d075bd6648e3a23012391d9c13a67","_id":"abstraction@2.0.0","_shasum":"a156043da5559ab8519af5172b6f2e0065bf013d","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"a156043da5559ab8519af5172b6f2e0065bf013d","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-2.0.0.tgz","integrity":"sha512-DukmCrEY8kZmJEvPNyXfe1esS9lo0fA/sOFDo7BwkPTSfi/Y3Nlgvco9optwVoQcBbZcr1G/dQabmevtR+FYNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTGeWoFbn6xf6Vd1I++AJknI17KIGNQEKI2ZG15uVMOQIhAP55vTECUit7JhpfS32+Hct0kwPob3NY33fak81xHQpO"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-2.0.0.tgz_1465237724920_0.4769420346710831"}},"3.0.0":{"name":"abstraction","version":"3.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"18c6d3bfba3949a7a6b756e84663bd31f817788f","_id":"abstraction@3.0.0","_shasum":"2cb8fa66d58c0134a89e4285bb20a916015325c7","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"2cb8fa66d58c0134a89e4285bb20a916015325c7","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-3.0.0.tgz","integrity":"sha512-akKDD4/knnCTOAKkEJA6I/vxpmqaFySzARGvOrYunVFIQs//BFPB03DOKuZOAfDftWw49CyjsI3yLbb9Y5SU1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB3BwgI3Y/YThH0gqyZSJvH+ePyQ067SUVDqdNK3zG3QIgZkblU3OWJ3X0LR3V+HFD3pnSkmvI79VMOlUOoJj55m8="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-3.0.0.tgz_1465243594425_0.11257479968480766"}},"3.1.0":{"name":"abstraction","version":"3.1.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"600dfcda5c3a3866f7d646e6481f013ab32fe303","_id":"abstraction@3.1.0","_shasum":"e464280e3ea5c427dd6da8d0df358ba8de385714","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"e464280e3ea5c427dd6da8d0df358ba8de385714","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-3.1.0.tgz","integrity":"sha512-zUvheSVzPZpMU66zdjy/xPsbsR/gZaqSYSjlKhaO5pIirbrU6yGUbctiF0bpWEBRYbNpYVoazm2Rn5ShofKm8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgfTyWDhBeexGDx/pJrT9OvAVbe/WYVBm/B9K1cNb/YgIgHm6tDIKuildqJhvGeKAVJkb3QNuer16ZBNL450GgqTg="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-3.1.0.tgz_1465244534078_0.14331856416538358"}},"3.1.1":{"name":"abstraction","version":"3.1.1","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"de784c930fd623080fd71d2f41958fb045e07c60","_id":"abstraction@3.1.1","_shasum":"b4650e456186973409e37094de38c8249fac01aa","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"b4650e456186973409e37094de38c8249fac01aa","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-3.1.1.tgz","integrity":"sha512-t9XJm7wN6WIGfVjiXuGaTY+IZItnoXMhwoy1a52245A9wgsm+WpGPCa96ES0/+oUXwmmke+MnMZMgFOF9yZ6Dg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2INRytXnCYeyssMLozihVEhudQKzyEL97G6IXP7ASmAiEA2WeKUAIie19iBiy/seg5U/DnLDcHI60KlweEBAGUok0="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-3.1.1.tgz_1465246030766_0.700979549670592"}},"3.1.2":{"name":"abstraction","version":"3.1.2","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"f21338b7110d43d8ef06b95ff40153a34ac3fcf9","_id":"abstraction@3.1.2","_shasum":"0b0854ae726004ba4a1cd209841a746799a4df75","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"0b0854ae726004ba4a1cd209841a746799a4df75","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-3.1.2.tgz","integrity":"sha512-WutD5g7Pgxhcm3YRlh0vs2tm24/uuxYdi0V/D/g6xoW13NN2/swtdArs6AM+C9mwS0QY4o0yKGSpcoe1/+A8bA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHT6h2WuPSO6MJi9EMG9TvehtZ1pN3myKpra+uhbqi0nAiA6JUxzWiYAGSmW3M/YfPSNpVOje1iVbNdkGc9vv37qaQ=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-3.1.2.tgz_1465246714275_0.19497109088115394"}},"3.2.0":{"name":"abstraction","version":"3.2.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"e5e77faba13a9bdfa191599aff25c06cd479ced9","_id":"abstraction@3.2.0","_shasum":"32391cdcb62c349d7d44d9f3b9035b9447afe730","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"32391cdcb62c349d7d44d9f3b9035b9447afe730","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-3.2.0.tgz","integrity":"sha512-LHRG47amEiqsSkyo2au4gMY490B0g82lHnD4v/XhbWpJqCQdRUlkMP5pbN4nCMOfwip1PKTBOExwe7v6MbN/+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8SR9l18sWnGjIs7WgwxTXKERl7MLd11eGjmXEJb/o+gIhAK8EgXM9Xu/XcaWLxsbZ38AmxUnOkWoWZn5dQX7uCB9L"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-3.2.0.tgz_1465265048201_0.8965465645305812"}},"4.0.0":{"name":"abstraction","version":"4.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"7536f8ea1d1ae14bf1c7b767ee192775660861d0","_id":"abstraction@4.0.0","_shasum":"8b1058c130d7fd171af0c3c1d9bae6652ca152e0","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"8b1058c130d7fd171af0c3c1d9bae6652ca152e0","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-4.0.0.tgz","integrity":"sha512-/jSy69lvrQUKUXFVP61NESpbsPYZgwEhvFuyVqQdFnZE7b5QOpa41Td/zrmnmk9ovKq5kV6zD3SIWE9WyOmgIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFB7P+0a2Puee/4a0fA41ggdQbKrbiujgBwCBd8bo0WRAiB5zpFjTM5ZYPd9Ky6ESyikd/4Fzz3CHiGltP2fEiItow=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-4.0.0.tgz_1465266851679_0.8907716469839215"}},"5.0.0":{"name":"abstraction","version":"5.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2.13.0","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"aee973fa7e9c9e1fcaeb7dcc4d4cf162dc2e2ca1","_id":"abstraction@5.0.0","_shasum":"99c9f8567a5a44e92e38ceabfceff200a3c35446","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"99c9f8567a5a44e92e38ceabfceff200a3c35446","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-5.0.0.tgz","integrity":"sha512-tJkou/YZ+EEMYONLrM9DI/jJ3D66+FmFuLpR61bf2cnSYbZianovGJgDq0j7bRbrPf4nFxgSDzaLK7aDBz6zIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApinfHTHNcwjHxz7SnGS2wtuOlw7ISn1GeTeZIjrSczAiEAwsMxgxuHSoS4GmGUgar2mw5f10WI8d6xGrr3eZXnUNI="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-5.0.0.tgz_1465499329270_0.26069205068051815"}},"6.0.0":{"name":"abstraction","version":"6.0.0","description":"A library for modeling abstract business logic or datatypes. Useful for SQL tables.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-es3-member-expression-literals":"^6","babel-plugin-transform-es3-property-literals":"^6","babel-plugin-transform-es5-property-mutators":"^6","babel-plugin-transform-eval":"^6","babel-plugin-transform-exponentiation-operator":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","babel-plugin-transform-runtime":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^2","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2","npm":"^3","npm-run-all":"^2"},"peerDependency":{"pg":"^4","moment":"^2"},"dependencies":{"bunyan":"^1","knex":"0.10.0","ramda":"0.21.0"},"gitHead":"6cd232fed1270f1432d511789b6372e7186c089f","_id":"abstraction@6.0.0","_shasum":"d2154a8bbc45c69ff6503c07a3a425ce7317bd53","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"d2154a8bbc45c69ff6503c07a3a425ce7317bd53","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.0.0.tgz","integrity":"sha512-8uVGJYapl2le2FxyGvjXGB3n2XIXtzAmwWE8WeqrMlhVgbXbRseuvi0PUTWq2T4iWTHJdfYHwGNadgAMy0Gjvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBOY4E/BeeTKNB0VgqSPtxG47S4Z8UK6iHiZdRY4Ki4dAiEA+GOTvAdMqAsln+h4TBB3UWX6BomsmjD30S7PLPzoWDg="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-6.0.0.tgz_1465507912367_0.1574617421720177"}},"6.0.1":{"name":"abstraction","version":"6.0.1","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^3","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2","npm":"^3","npm-run-all":"^2"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.21.0"},"gitHead":"9631752b4f2e3a76036e0bf1acc9d098ce1a428b","_id":"abstraction@6.0.1","_shasum":"2f6f8a04059fcdfdecaf1ad06cb0c859d9bcf4ae","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"2f6f8a04059fcdfdecaf1ad06cb0c859d9bcf4ae","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.0.1.tgz","integrity":"sha512-MdO/tXTUBkDREId/eqdpk1n9gJym80PHqXoEUeeKO2Ymf3IVKg5AVFyB7767+1anquiNm73c4cTN19/TIX40jQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG3UFbwHnaE28UMaotJ2+AuxOf5l/gSnpwSRPQoQkHdtAiAON8k9DrzJc7kSMHjm0Kx4wcOvEdFvw8yWIJCdX+ajiA=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-6.0.1.tgz_1465576570173_0.7251518506091088"}},"6.0.2":{"name":"abstraction","version":"6.0.2","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^2","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^3","eslint-plugin-node":"^1","greenkeeper":"^2","mocha":"^2","moment":"^2","npm":"^3","npm-run-all":"^2"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.21.0"},"gitHead":"24c9136dc45ae47d800d965882ae34ce4761545c","_id":"abstraction@6.0.2","_shasum":"1911bcbeef3976409ad288bc5790319cb2f72330","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"1911bcbeef3976409ad288bc5790319cb2f72330","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.0.2.tgz","integrity":"sha512-X5YQ945w3kp6Wo3SshOJW2QI7okpM0w9rYDw65Q+yUPUzRYH8VvcOKjW6QHYG0wOgCG/Zyrxjn0A0//lpgVL2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHdX0hc8dA4l3KxKD4VXcctnbrrjosREhUIAH610LGVzAiEAqSjW9bkMt+tvZueF1WG5ZMS7CxEI8fBkd4NROlQIn7Q="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-6.0.2.tgz_1465601350630_0.5917254148516804"}},"6.0.3":{"name":"abstraction","version":"6.0.3","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3.0.0","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^3","mocha":"^2","moment":"^2","npm":"^3","npm-run-all":"^2"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.21.0"},"gitHead":"9254758275d8241b8bf6bcfd4029fcea86339095","_id":"abstraction@6.0.3","_shasum":"f513e78b1c6d3407fc3e96db3dbf4aad2189a49e","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"f513e78b1c6d3407fc3e96db3dbf4aad2189a49e","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.0.3.tgz","integrity":"sha512-P3sxeoPEFBVIqbyHjZL83zkpLh8EBzmErCm+LcEFqay34FQj+bIihAb69/CBpMImzDiqMVii0p4VIRB/I4qR6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtvnG94ma6NRCLMsjG07NMVVmqfoDkVBS83/lU0+vdWwIgAqLjxb75ULHTrp/p9HoxA11wTN4owQ8/xvj0nJaGHu0="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-6.0.3.tgz_1472375456455_0.32982039730995893"}},"6.1.0":{"name":"abstraction","version":"6.1.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3.0.0","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^3","mocha":"^2","moment":"^2","npm":"^3","npm-run-all":"^2"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.21.0"},"gitHead":"ae1309c24251c86a0c5203a59f64f19ce472a6e9","_id":"abstraction@6.1.0","_shasum":"821fa1d873ce0969d99f16401eb1be7f78990782","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"821fa1d873ce0969d99f16401eb1be7f78990782","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.1.0.tgz","integrity":"sha512-SwNWCtkbXEgacbG1azrLno4+vINh913Oj35nAPCGxAHAjXgQS/WQtX6rIRCOZj3Z7a+LBMvPauh/eZ4P6Ig9+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+JKcgHdmZEVdQR2ueRqqsaKpHmVBM3o2vszpTNuXcaAiBcOhJTINe7bQgRjQCingrzSnMSA0kldARgGqeGjbmmyQ=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-6.1.0.tgz_1472379470089_0.9361008547712117"}},"6.2.0":{"name":"abstraction","version":"6.2.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3.0.0","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^3","mocha":"^3","moment":"^2","npm":"^3","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"66769a7d112c763ea71680ce27d0f30d86a19d1c","_id":"abstraction@6.2.0","_shasum":"7273d8b12ca1680fd3374e4ad3490d8e5a4dfae5","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"7273d8b12ca1680fd3374e4ad3490d8e5a4dfae5","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.2.0.tgz","integrity":"sha512-1eRi1BzwczMZRjPSeAz/F5giT1cIpXPH0PxX0rWRQ1oECnTZbE/s0zBp3zmb2T+UUgeU02c2Bd1jNYLRGg9Tmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUF3L1S7MVXVtJAT6tC8WvYDLAmC9tYapngWy8lu76UAiABwgzRoU+r9joO8itLTmxoE8mmNR0Ar+lSWcepqJ6spw=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/abstraction-6.2.0.tgz_1472456790934_0.03992068371735513"}},"6.3.0":{"name":"abstraction","version":"6.3.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3.0.0","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^3","mocha":"^3","moment":"^2","npm":"^3","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"e0f4502c21610e204cd86a4bd135c2c682c6aaca","_id":"abstraction@6.3.0","_shasum":"bf559b25e1596bf0e071bebd6db51fb32663557f","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"bf559b25e1596bf0e071bebd6db51fb32663557f","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.3.0.tgz","integrity":"sha512-HXENi7RgKYj53YWhFzqIrg+/kEPOvFqzmvfRoBhzkcHQliktiu+r2qE5DvkJPgGHKQ6vM7FkkStNqyXz2+W69g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGPjI2s7JgQJd9Pa7x9sisG/SopzjIujr14XKWSolGFcAiEA4pV2Eo68Ti+EX62th07m7wVgH7xFCP0A2q3y4Jag48I="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-6.3.0.tgz_1472459259514_0.8019396692980081"}},"6.4.0":{"name":"abstraction","version":"6.4.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3.0.0","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^3","mocha":"^3","moment":"^2","npm":"^3","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"6c84a926250c34dd847694c74d333c753bb91d1e","_id":"abstraction@6.4.0","_shasum":"e24acb0459a6a1bb3953d8920d5d0213f475d59a","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"e24acb0459a6a1bb3953d8920d5d0213f475d59a","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-6.4.0.tgz","integrity":"sha512-SgnwLOLN8huFFORTB7b+OYxiAdCwK0NZy2dxqWGfjESD47wZUKeaBhLjoQGnn8rRgRFDESg7YJnrf4FkUYq1Tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDG6btm6U5q63YAkGONqaxTyb/Kaklaq30DEqhnn7uwIwIgMxWjyP/T9cX3h5jDUsjIB45bvfQfbk6NhV0eaKOFVIY="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-6.4.0.tgz_1472461102752_0.4917356411460787"}},"7.0.0":{"name":"abstraction","version":"7.0.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","moment":"^2","npm":"^3","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"a961f35829a2cb3923115560d9190d065be39b56","_id":"abstraction@7.0.0","_shasum":"9d9d3b983a3ba869877f0f4203c8fca1cd1d7407","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"9d9d3b983a3ba869877f0f4203c8fca1cd1d7407","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-7.0.0.tgz","integrity":"sha512-1D8zTraCfnsoHDPIoB6X97wqJ1GAClw7GLi7yi8AxqAbf9cy7M41hlKN4MTo+e8czEV1rgNyQVLlbrxypAfWbw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE1Ge6qLnKpjCgxXCCS9W5zLMsXYs4UAGku6OfrYsigQIhAIFYnAKmcLzUh9AVfZbTiVbwAg1Jp6kbqk1qFxtvlF2A"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-7.0.0.tgz_1473149745930_0.4517398427706212"}},"7.1.0":{"name":"abstraction","version":"7.1.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-transform-es2015-computed-properties":"^6","babel-plugin-transform-es2015-destructuring":"^6","babel-plugin-transform-es2015-function-name":"^6","babel-plugin-transform-es2015-literals":"^6","babel-plugin-transform-es2015-modules-commonjs":"^6","babel-plugin-transform-es2015-parameters":"^6","babel-plugin-transform-es2015-spread":"^6","babel-plugin-transform-es2015-sticky-regex":"^6","babel-plugin-transform-es2015-unicode-regex":"^6","babel-plugin-transform-export-extensions":"^6","babel-plugin-transform-function-bind":"^6","babel-plugin-transform-member-expression-literals":"^6","babel-plugin-transform-object-assign":"^6","babel-plugin-transform-object-rest-spread":"^6","babel-plugin-transform-object-set-prototype-of-to-assign":"^6","babel-plugin-transform-property-literals":"^6","babel-plugin-transform-proto-to-assign":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","moment":"^2","npm":"^3","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"4720c54ea4d5c4b17dfa30ba49636a5418b36cb0","_id":"abstraction@7.1.0","_shasum":"a37c821eb6c2d6ad0a34c12dd7b023271ebc0953","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"a37c821eb6c2d6ad0a34c12dd7b023271ebc0953","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-7.1.0.tgz","integrity":"sha512-jRkFgyg3dM591LybGBMrc2A28HDntS7YCSJcOKcCuBBzGEbAfYOS1IyaG6KPvpWEjnLpIhAvKgvScLkAFboT2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJeftH+bclqWnyyyx77vv3DNPIizt7iXWIjZop3i3txgIgDLw2fLk3Gvu58LYWWb5yXJZam3bnJzgOCQkUQErStlk="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-7.1.0.tgz_1473157019929_0.16242801607586443"}},"8.0.0":{"name":"abstraction","version":"8.0.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"engines":{"node":"^6","npm":"^3"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-closure-elimination":"^1","babel-plugin-relative-import":"^1.0.3","babel-plugin-transform-object-rest-spread":"^6","babel-preset-babili":"0.0.2","babel-preset-latest":"^6","babel-relative-import":"^1","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","moment":"^2","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"2acb0b7547b78c0514b705de3498151d97f3beea","_id":"abstraction@8.0.0","_shasum":"76cb1d5556017572de189dd5bc3ac10ff1f6df3e","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"76cb1d5556017572de189dd5bc3ac10ff1f6df3e","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-8.0.0.tgz","integrity":"sha512-c7Y0svtQy4CrmBe5sGC6TJxhG6/a4lPfu6aREdRwJoexwnoszGgIe4xjwgQQMm5t5DqA63sprBl2j4ae6hMfrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID2YP/PHr5cDkRlo9jRPRriPNDYt9fujkUFIDdspczXSAiEAhM15zxp5dQD20UKxUjDX18GxLuz50PwrfKPF08b9bbI="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-8.0.0.tgz_1474166951240_0.875084183877334"}},"8.0.1":{"name":"abstraction","version":"8.0.1","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"engines":{"node":"^6","npm":"^3"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel":"^6","babel-cli":"^6","babel-core":"^6","babel-eslint":"^6","babel-plugin-closure-elimination":"^1","babel-plugin-relative-import":"^1.0.3","babel-plugin-transform-object-rest-spread":"^6","babel-preset-latest":"^6","babel-relative-import":"^1","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","moment":"^2","npm-run-all":"^3"},"peerDependency":{"moment":"^2"},"dependencies":{"bunyan":"^1","ramda":"0.22.1"},"gitHead":"be409aa97c34a7280e4909b91e4cec87ed06f69d","_id":"abstraction@8.0.1","_shasum":"3ca8276a021b8db6ca54d1e5cf84c7dd968d22c3","_from":".","_npmVersion":"3.9.0","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"3ca8276a021b8db6ca54d1e5cf84c7dd968d22c3","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-8.0.1.tgz","integrity":"sha512-L9MFQ1X8ZzULB3HbMZlXKHnhKjPRJOrN2WeaflUkwyNplYZsLEOOpcwpYlC3wl3dBObrfzeOegTp8Na+ZcwiNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXYfiUBsuH3gFWX3bOUILxDUX1NO3X8bwX5NjzzEOSIwIhAME+V/CoLAV2X9RHw3bza7M/RAvxwN1+JErRz2vtoZxw"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-8.0.1.tgz_1474167062026_0.9401445752009749"}},"9.0.0":{"name":"abstraction","version":"9.0.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"engines":{"node":"^6","npm":"^3"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel-cli":"^6","babel-core":"^6","babel-eslint":"^7","babel-plugin-transform-object-rest-spread":"^6","babel-preset-latest":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","npm-run-all":"^3"},"dependencies":{"ramda":"0.22.1"},"gitHead":"89298e85daeb1597775c99391ecb42f6fbfd705e","_id":"abstraction@9.0.0","_shasum":"6a14915a9cd427a7afead5492ccc75ed1925a28a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"6a14915a9cd427a7afead5492ccc75ed1925a28a","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-9.0.0.tgz","integrity":"sha512-4HdUd+6BhzMstP1h9SXts0Kb2IUvONypLFdi6JlZTGoYzl5meqjBmDxR5fTP8cGGUpH/G7w5BC4k+6Dqw5J1jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4sGk60p+dGu4k5L6GUzTZuBJLudyXqaOn5hANhERpFQIgcJdHgCCXnvOissLuSEg8NR37M94xAoQ8zZN1iBM7JYU="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/abstraction-9.0.0.tgz_1480506973790_0.3915214901790023"}},"9.0.1":{"name":"abstraction","version":"9.0.1","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"mocha --compilers js:babel-register './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"engines":{"node":"^6","npm":"^3"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel-cli":"^6","babel-core":"^6","babel-eslint":"^7","babel-plugin-transform-object-rest-spread":"^6","babel-preset-latest":"^6","chai":"^3","chokidar-cli":"^1","eslint":"^3","eslint-plugin-babel":"^3","eslint-plugin-immutable":"^1","eslint-plugin-import":"^1","eslint-plugin-mocha":"^4","eslint-plugin-node":"^2","greenkeeper":"^4","mocha":"^3","npm-run-all":"^3"},"dependencies":{"ramda":"0.22.1"},"gitHead":"bcb576fcd431a9d2aabd4f904825d288d45653da","_id":"abstraction@9.0.1","_shasum":"a5c9378fcac602268f51796f0409e635956b8fb1","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.1.0","_npmUser":{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"},"dist":{"shasum":"a5c9378fcac602268f51796f0409e635956b8fb1","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-9.0.1.tgz","integrity":"sha512-zgoouvRAZddL1QXsEpFNVSBl16i7dq1xqT/qMGr5cJCQYG18LXSeHo96xKpJivZGhFXDHXAYUKaREgE0y+mWAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRZ3KUB0AjQGVdu8XYkg9G7RAkD40y6rEBbuJLLt0RvgIhAO3CbNYrHHtWbeZ16AOq65oykAONkrTM3hvsVqk2ro+t"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-9.0.1.tgz_1480507032979_0.2565657983068377"}},"9.0.2":{"name":"abstraction","version":"9.0.2","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"rm -rf './transpiled/' && mkdir './transpiled/' && babel './source/**/index.js' -d './transpiled/'","test":"babel-tap './source/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel-cli":"6.24.0","babel-core":"6.24.0","babel-eslint":"7.2.1","babel-plugin-transform-object-rest-spread":"6.23.0","babel-preset-env":"1.2.2","babel-preset-flow":"6.23.0","babel-tap":"5.0.0","chokidar-cli":"1.2.0","eslint":"3.18.0","eslint-plugin-babel":"4.1.1","eslint-plugin-flowtype":"2.30.4","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-promise":"3.5.0","flow":"0.2.3","flow-bin":"0.42.0","flow-typed":"2.0.0","greenkeeper":"4.2.1","npm-run-all":"4.0.2","sinon":"2.1.0","tap":"10.3.0"},"dependencies":{"ramda":"0.23.0"},"gitHead":"42da943fd74338de19b97e27bc60fac0f93d9d41","_id":"abstraction@9.0.2","_shasum":"60be38ada15d814d65294b9ab3ff468a8085ba3e","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.2","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"shasum":"60be38ada15d814d65294b9ab3ff468a8085ba3e","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-9.0.2.tgz","integrity":"sha512-onjMr0HOthUFw681LOUUEaI6Aw/9hCzwWHtMPQgZ701Yn/RD4DmaTSpKRX926z9jEtMi6JbKWltWkjk6gfNlqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2y76Z79YXXNCH3YjRh5AFhNmvL9uqfkJPW2ESPU8/aAiEA9c8Zzhj5VbymuNUS939JBGJ2z4FVxE0XMFpfJwKBAsU="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/abstraction-9.0.2.tgz_1490679393242_0.9356833291240036"}},"10.0.0":{"name":"abstraction","version":"10.0.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"babel './source/**/index.js' './source/**/test.js' -d './transpiled/'","test":"tap './transpiled/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'","watch":"npm-run-all --parallel watch:test watch:lint watch:build","watch:build":"chokidar './source/' --initial --command 'npm run build --silent'","watch:test":"chokidar './source/' --initial --command 'npm run test --silent'","watch:lint":"chokidar './source/' --initial --command 'npm run lint --silent'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"me@kurtisrainboltgreene.name","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.1","babel-plugin-transform-object-rest-spread":"6.23.0","babel-preset-env":"1.2.2","babel-preset-flow":"6.23.0","chokidar-cli":"1.2.0","eslint":"3.18.0","eslint-plugin-babel":"4.1.1","eslint-plugin-flowtype":"2.30.4","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-promise":"3.5.0","flow":"0.2.3","flow-bin":"0.43.1","flow-typed":"2.0.0","greenkeeper":"4.2.1","npm-run-all":"4.0.2","sinon":"2.1.0","tap":"10.3.0"},"dependencies":{"ramda":"0.23.0","ramda-extra":"4.1.2","validus":"1.0.1"},"gitHead":"04d50c123f20d598dfc12c0fef447393c1f5178d","_id":"abstraction@10.0.0","_shasum":"dfb9fb2dac768e7ac8d0c75925c9cc42d2fd095f","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.2","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"shasum":"dfb9fb2dac768e7ac8d0c75925c9cc42d2fd095f","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-10.0.0.tgz","integrity":"sha512-nQ3LIvjsp9m7sdr20YnSVKOBRwC+QvicipS4qETJXo8zACPPmi4L5wn6wCExP7T91M8BVf9UqR9s9VHw11nq0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQsBOmHfJgv/zBkuSozx60I037ZIn2fZ0JQ4fvqxTXHgIgSmZCfGTPBCXuQjiN5yKg2psK7sBsEJudB1qxBpaBR+0="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/abstraction-10.0.0.tgz_1491977760226_0.10106813465245068"}},"10.1.0":{"name":"abstraction","version":"10.1.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"babel './source/**/*.js' -d './transpiled/'","pretest":"npm run build","test":"tap './transpiled/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"kurtis@rainbolt-greene.online","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"@unction/endswith":"1.0.0","@unction/ispopulated":"1.0.0","@unction/ispresent":"1.0.0","@unction/istype":"1.0.0","@unction/lackstext":"1.0.0","babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.3","babel-plugin-transform-object-rest-spread":"6.23.0","babel-preset-env":"1.4.0","babel-preset-flow":"6.23.0","eslint":"3.19.0","eslint-plugin-babel":"4.1.1","eslint-plugin-flowtype":"2.32.1","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-promise":"3.5.0","flow":"0.2.3","flow-bin":"0.45.0","flow-typed":"2.1.2","greenkeeper":"4.2.1","npm-run-all":"4.0.2","sinon":"2.1.0","tap":"10.3.2"},"dependencies":{"@unction/mapvalues":"1.0.2","ramda":"0.23.0","validus":"1.0.1"},"gitHead":"9d54578d62b2559d067a15122e82b4ee4012826e","_id":"abstraction@10.1.0","_shasum":"0db7704033f5f80babdba4137de92cafcfff3ae6","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.7.2","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"shasum":"0db7704033f5f80babdba4137de92cafcfff3ae6","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-10.1.0.tgz","integrity":"sha512-SOiZplhx9jFbTgucWX+J+0cNa56+kb8ezh1kccBUsRTFo6vfDEHIBpC3Iq6YvLY4ISAoXBZFKSbkNPuJfmihhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICgtx0w7td2H0wF8Lzl4C7kQqHxQzsNUxt4SPzcGDN/wAiAih0XmIxcPBLRVzh67YBv5+RbohNnHbM21+TvqfMvt1g=="}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/abstraction-10.1.0.tgz_1493626515594_0.6228191303089261"}},"10.2.0":{"name":"abstraction","version":"10.2.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"babel './source/**/*.js' -d './transpiled/'","pretest":"npm run build","test":"tap './transpiled/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"kurtis@rainbolt-greene.online","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"@unction/endswith":"1.0.0","@unction/ispopulated":"1.0.0","@unction/ispresent":"1.0.0","@unction/istype":"1.0.0","@unction/lackstext":"1.0.0","babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.3","babel-plugin-transform-object-rest-spread":"6.23.0","babel-preset-env":"1.4.0","babel-preset-flow":"6.23.0","eslint":"3.19.0","eslint-plugin-babel":"4.1.1","eslint-plugin-flowtype":"2.32.1","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-promise":"3.5.0","flow":"0.2.3","flow-bin":"0.45.0","flow-typed":"2.1.2","greenkeeper":"4.2.1","npm-run-all":"4.0.2","sinon":"2.1.0","tap":"10.3.2"},"dependencies":{"@unction/mapvalues":"1.0.2","ramda":"0.23.0","validus":"1.1.0"},"gitHead":"b46f24af058c99cff3e5581bfbd8dbb09b8221fa","_id":"abstraction@10.2.0","_shasum":"20f22a1f58f1527d5edc3c763350ad4b895cf8c8","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.7.2","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"shasum":"20f22a1f58f1527d5edc3c763350ad4b895cf8c8","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-10.2.0.tgz","integrity":"sha512-pY/6ytmrskOH9TDZQdA+03VO66KyNMEHT5LhSQ/otGRXKqwXheYgRyU50NtvFqEWwipPEIkv8E8MNSe3huL+hA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCufjgCG38+KFDDsYatYbCbkelLobd7CD1ApxFRWHgoCAIhALUg9eTMpU+Fee2Dd2ajmkCHLciiRPPSKrJjcikPMrbz"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/abstraction-10.2.0.tgz_1493692927664_0.029391887597739697"}},"10.3.0":{"name":"abstraction","version":"10.3.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"babel './source/**/*.js' -d './transpiled/'","pretest":"npm run build","test":"tap './transpiled/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"kurtis@rainbolt-greene.online","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"@unction/endswith":"1.0.0","@unction/ispopulated":"2.0.0","@unction/ispresent":"1.0.0","@unction/istype":"1.0.0","@unction/lackstext":"1.0.0","babel-cli":"6.24.1","babel-core":"6.24.1","babel-eslint":"7.2.3","babel-plugin-transform-object-rest-spread":"6.23.0","babel-preset-env":"1.4.0","babel-preset-flow":"6.23.0","eslint":"3.19.0","eslint-plugin-babel":"4.1.1","eslint-plugin-flowtype":"2.32.1","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.2.0","eslint-plugin-promise":"3.5.0","flow":"0.2.3","flow-bin":"0.45.0","flow-typed":"2.1.2","greenkeeper":"4.2.1","npm-run-all":"4.0.2","sinon":"2.1.0","tap":"10.3.2"},"dependencies":{"@unction/mapvalues":"1.0.2","ramda":"0.23.0","validus":"1.1.0"},"gitHead":"f36ad9e0c85aeb344f7d91fc269e2e63cccb3a4c","_id":"abstraction@10.3.0","_shasum":"9aed26f9285f816fd82e93e38ae5ea9969fb1f25","_from":".","_npmVersion":"4.5.0","_nodeVersion":"7.7.2","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"shasum":"9aed26f9285f816fd82e93e38ae5ea9969fb1f25","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-10.3.0.tgz","integrity":"sha512-T2zXlWHztbAAgo48YKObx/MCg/9OVCm1b9Y9VKPtiwI3j2PY7jtqunQVCm6X1cPWOepr9Bvd1uF+b71mAxqIIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL7BT5XWldKn0ClLZjwmc0XJ70TOw43FGyOgZkcD8U/AIhALnm2mU07T/uCiW07/UHDXUasUjlzCkAt3Vs/toG0DG7"}]},"maintainers":[{"name":"krainboltgreene","email":"me@kurtisrainboltgreene.name"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/abstraction-10.3.0.tgz_1493701347331_0.3344559089746326"}},"11.0.0":{"name":"abstraction","version":"11.0.0","description":"A library for modeling abstract business logic or wrapping data structures.","main":"transpiled/source/index.js","scripts":{"prepublish":"npm run build","build":"babel './source/**/*.js' -d './transpiled/'","pretest":"npm run build","test":"tap './transpiled/**/test.js'","start":"npm-run-all --parallel watch:build watch:test","lint":"eslint './source/'"},"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"author":{"name":"Kurtis Rainbolt-Greene","email":"kurtis@rainbolt-greene.online","url":"@krainboltgreene"},"license":"ISC","bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","devDependencies":{"@unction/endswith":"2.8.0","@unction/ispopulated":"4.49.0","@unction/ispresent":"2.8.0","@unction/istype":"2.12.0","@unction/lackstext":"3.7.0","babel-cli":"6.26.0","babel-core":"6.26.0","babel-eslint":"8.0.3","babel-plugin-transform-object-rest-spread":"6.26.0","babel-preset-env":"1.6.1","babel-preset-flow":"6.23.0","eslint":"4.12.1","eslint-plugin-babel":"4.1.2","eslint-plugin-flowtype":"2.39.1","eslint-plugin-immutable":"1.0.0","eslint-plugin-import":"2.8.0","eslint-plugin-promise":"3.6.0","flow":"0.2.3","flow-bin":"0.60.1","flow-typed":"2.2.3","npm-run-all":"4.1.2","sinon":"4.1.2","tap":"11.0.0"},"dependencies":{"@unction/mapvalues":"3.46.0","ramda":"0.25.0","validus":"1.1.0"},"gitHead":"f8767fc0a356d7461a4d4850500f12bf536e1b71","_id":"abstraction@11.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"},"dist":{"integrity":"sha512-CAOLi0sxoZlDwycEBzoR60h/VhWlPkcMIKAFS75vdlO2pH3ygE+EVAVDHDuSWCh1xR+b9foeiBRP6xYAT87BGw==","shasum":"7f267eff54d8dd2a7240f4080bee5a23b092c6a4","tarball":"https://registry.npmjs.org/abstraction/-/abstraction-11.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFDTQELULpPFDnGpd9UVFMIKDl6sI5LjPnFKTrP90MqUAiAaqCQgx53sbHa4sXZOcFmedBTjhPAskLMqY4gWlXlM6w=="}]},"maintainers":[{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abstraction-11.0.0.tgz_1512285743231_0.5679485404398292"}}},"readme":"# abstraction\n\nA way of modeling your business logic or data structures in a compact and compose-able way.\n\n  - Does one job\n  - Functions, Records, and Arrays, that's it.\n  - Works for many uses: ODM/ORM, Presenter, Serializer, Deserializer, Decorator, etc.\n\n![Version][BADGE_VERSION]\n![Tests][BADGE_TRAVIS]\n![Stability][BADGE_STABILITY]\n![Dependencies][BADGE_DEPENDENCY]\n\n\n## using\n\nLets say you have some data from a server that you want to display to the user:\n\n``` javascript\nconst incomingData = {\n  id: \"1\",\n  type: \"accounts\",\n  attributes: {\n    name: \"Kurtis Rainbolt-Greene\",\n    age: \"27\",\n    email: \"kurtis@amazon.com\",\n    \"created-at\": \"2013-02-04T10:35:24-08:00\",\n  }\n}\n```\n\nThe age is a string, the timestamp for created at is also a string, and created at isn't camel case. We can fix this:\n\n``` javascript\nconst accountResource = abstraction({\n  attributes: {\n    id: {source: prop(\"id\")},\n    type: {source: prop(\"type\")},\n    attributes: {\n      source: prop(\"attributes\"),\n      coerce: accountAttributes,\n    }\n  }\n})\n```\n\nThere's a lot happening here so lets break it down:\n\n``` javascript\nconst accountResource = abstraction({\n  attributes: {\n    ...\n  }\n}\n```\n\nEvery abstraction has a set of attributes. These are properties that'll be exposed on the returning abstract object.\n\nLets take the `id` and `type` attributes for a moment:\n\n``` javascript\nconst accountResource = abstraction({\n  attributes: {\n    id: {source: prop(\"id\")},\n    type: {source: prop(\"type\")},\n  }\n})\n```\n\nFor these we're just defining a `source`. The `source` is a function that tells us how to get to our data for `id` and `type`. This is easy for us, so we'll just use `path()`. Now it's time to get a little more complicated with `attributes`.\n\n``` javascript\nconst accountResource = abstraction({\n  attributes: {\n    id: {source: prop(\"id\")},\n    type: {source: prop(\"type\")},\n    attributes: {\n      source: prop(\"attributes\"),\n      coerce: accountAttributes,\n    },\n  },\n})\n```\n\nSo here we're not only sourcing from the raw data, but also using a fun little `coerce` function. This function should take the data from source and convert it to what you need. In this case we're doing something really cool in that we're actually coercing the data into another abstraction!\n\n``` javascript\nconst accountAttributes = abstraction({\n  attributes: {\n    username: {source: pipe(prop(\"email\"), split(\"@\"), head)},\n    email: {source: prop(\"email\")},\n    name: {source: prop(\"name\")},\n    age: {\n      source: prop(\"age\"),\n      coerce: (value) => parseInt(value, 10),\n    },\n    createdAt: {\n      source: prop(\"created-at\"),\n      coerce: moment,\n    },\n  },\n})\n```\n\nThere's some interesting things going on here as well, specifically in `username`'s source and `createdAt`'s `coerce` function. Notice that there is no username on the raw data and is instead really a derived value. In addition, your final property name *doesn't have to be* the same as your raw property.\n\nFinally we also give a built in validations logic:\n\n``` javascript\nconst accountResource = abstraction({\n  attributes: {\n    id: {source: prop(\"id\")},\n    type: {source: prop(\"type\")},\n    attributes: {\n      source: prop(\"attributes\"),\n      coerce: accountAttributes,\n    }\n  },\n  validations: {\n    id: {\n      \"Must have an id\": propSatisfies(isPresent, \"id\"),\n      \"Must be an string\": propSatisfies(isType(\"String\"), \"id\"),\n      \"Must have characters\": propSatisfies(isPopulated, \"id\"),\n    },\n    type: {\n      \"Must have an type\": propSatisfies(isPresent, \"type\"),\n      \"Must be an string\": propSatisfies(isType(\"String\"), \"type\"),\n      \"Must have characters\": propSatisfies(isPopulated, \"type\"),\n    },\n    attributes: {\n      \"Must have attributes\": propSatisfies(isPresent, \"attributes\"),\n      \"Must have properties\": propSatisfies(isPopulated, \"attributes\"),\n      \"Must be an Object\": propSatisfies(isType(\"Object\"), \"attributes\"),\n    }\n  }\n})\n```\n\nEach validation is a group, so you have a group of `id` validations. The keys can be messages, like above, or slugs (regular property names). You can read more about it in the [validus.js documentation][https://github.com/krainboltgreene/validus.js].\n\nNow time to talk about what you'll get back when you run this:\n\n``` javascript\nconst account = accountResource(incomingData)\n```\n\nHere's the return value:\n\n``` javascript\n{\n  id: \"1\",\n  type: \"accounts\",\n  attributes: {\n    name: \"Kurtis Rainbolt-Greene\",\n    age: 27,\n    email: \"kurtis@amazon.com\",\n    username: \"kurtis\",\n    createdAt: 2013-02-04T18:35:24.000Z,\n    __abstraction__: {\n      ...\n    }\n  },\n  __abstraction__: {\n    ...\n  }\n}\n```\n\nOkay, wait, what's this `__abstraction__` nonsense? Well, that's where we keep the validations. Lets say `id` was missing, here's what you'd see from:\n\n``` javascript\naccount._errors\n```\n\nIt would return:\n\n``` javascript\n{\n  id: [\n    \"Must have an id\",\n    \"Must be an string\",\n    \"Must have characters\",\n  ],\n  ...\n}\n```\n\nIsn't that great? You can also ask for individual validations using validus.js directly:\n\n``` javascript\nimport {validate} from \"validus\"\n\nvalidate(account._validations)(\"id\")(account)\n```\n\nAnd that would return:\n\n``` javascript\n[\n  \"Must have an id\",\n  \"Must be an string\",\n  \"Must have characters\",\n]\n```\n\nAgain, assuming `id` was missing. The initial validations are done when you pass in the data, and the `validate` is for later validation.\n\n\n[BADGE_TRAVIS]: https://img.shields.io/travis/krainboltgreene/abstraction.js.svg?maxAge=2592000&style=flat-square\n[BADGE_VERSION]: https://img.shields.io/npm/v/abstraction.svg?maxAge=2592000&style=flat-square\n[BADGE_STABILITY]: https://img.shields.io/badge/stability-strong-green.svg?maxAge=2592000&style=flat-square\n[BADGE_DEPENDENCY]: https://img.shields.io/david/krainboltgreene/abstraction.js.svg?maxAge=2592000&style=flat-square\n","maintainers":[{"name":"krainboltgreene","email":"kurtis@rainbolt-greene.online"}],"time":{"modified":"2022-06-13T02:20:35.781Z","created":"2016-05-23T17:04:24.226Z","1.0.0":"2016-05-23T17:04:24.226Z","1.0.1":"2016-06-06T17:12:43.436Z","1.0.2":"2016-06-06T17:15:09.634Z","1.0.3":"2016-06-06T17:27:39.040Z","2.0.0":"2016-06-06T18:28:47.372Z","3.0.0":"2016-06-06T20:06:36.230Z","3.1.0":"2016-06-06T20:22:16.550Z","3.1.1":"2016-06-06T20:47:13.353Z","3.1.2":"2016-06-06T20:58:36.032Z","3.2.0":"2016-06-07T02:04:09.945Z","4.0.0":"2016-06-07T02:34:14.296Z","5.0.0":"2016-06-09T19:08:51.408Z","6.0.0":"2016-06-09T21:31:54.677Z","6.0.1":"2016-06-10T16:36:12.350Z","6.0.2":"2016-06-10T23:29:13.215Z","6.0.3":"2016-08-28T09:10:58.504Z","6.1.0":"2016-08-28T10:17:50.326Z","6.2.0":"2016-08-29T07:46:33.219Z","6.3.0":"2016-08-29T08:27:39.750Z","6.4.0":"2016-08-29T08:58:24.526Z","7.0.0":"2016-09-06T08:15:46.155Z","7.1.0":"2016-09-06T10:17:00.162Z","8.0.0":"2016-09-18T02:49:11.518Z","8.0.1":"2016-09-18T02:51:02.289Z","9.0.0":"2016-11-30T11:56:15.732Z","9.0.1":"2016-11-30T11:57:13.230Z","9.0.2":"2017-03-28T05:36:33.525Z","10.0.0":"2017-04-12T06:16:02.079Z","10.1.0":"2017-05-01T08:15:17.415Z","10.2.0":"2017-05-02T02:42:09.630Z","10.3.0":"2017-05-02T05:02:29.268Z","11.0.0":"2017-12-03T07:22:23.327Z"},"homepage":"https://github.com/krainboltgreene/abstraction.js#readme","keywords":["abstract","model","orm","odm","presenter","serializer","decorator"],"repository":{"type":"git","url":"git+https://github.com/krainboltgreene/abstraction.js.git"},"author":{"name":"Kurtis Rainbolt-Greene","email":"kurtis@rainbolt-greene.online","url":"@krainboltgreene"},"bugs":{"url":"https://github.com/krainboltgreene/abstraction.js/issues"},"license":"ISC","readmeFilename":"README.md"}