{"_id":"@ampatspell/sofa-models","_rev":"5-cde6785283f347e641b96634de9d786e","name":"@ampatspell/sofa-models","description":"Model library for CouchDB","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@ampatspell/sofa-models","version":"0.0.1","description":"Model library for CouchDB","repository":{"type":"git","url":"git+https://bitbucket.org/ampatspell/s2-models.git"},"main":"dist/index.js","scripts":{"build":"babel src --out-dir dist","build:watch":"babel src --out-dir dist --watch","lint":"eslint ./src --ext js || true","test":"babel-node node_modules/.bin/_mocha --require test/setup --recursive test","test:watch":"babel-node node_modules/.bin/_mocha --watch --require test/setup --recursive test","cover":"babel-node node_modules/.bin/babel-istanbul cover node_modules/.bin/_mocha -- --require test/setup --recursive test; open coverage/lcov-report/index.html","es":"babel-node","prepublish":"npm run test && npm run build"},"keywords":["sofa","couchdb","model","models"],"author":{"name":"ampatspell","email":"ampatspell@gmail.com"},"license":"ISC","devDependencies":{"@ampatspell/sofa-test-support":"0.0.1","babel":"^5.0.0","babel-core":"^5.0.0","babel-eslint":"^4.1.4","babel-istanbul":"^0.4.1","chai":"^3.4.0","eslint":"^1.8.0","mocha":"^2.3.3"},"dependencies":{"@ampatspell/sofa-store":"0.0.4","@ampatspell/sofa-util":"0.0.3","@ampatspell/sofa-logger":"0.0.4","bluebird":"^3.0.5","chalk":"^1.1.1","dasherize":"^2.0.0","lodash":"^3.10.1"},"homepage":"https://bitbucket.org/ampatspell/s2-models#readme","_id":"@ampatspell/sofa-models@0.0.1","_shasum":"966753221560e3e8a81a4a7b6e665a852e698a2c","_from":".","_npmVersion":"2.14.3","_nodeVersion":"3.3.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"966753221560e3e8a81a4a7b6e665a852e698a2c","tarball":"https://registry.npmjs.org/@ampatspell/sofa-models/-/sofa-models-0.0.1.tgz","integrity":"sha512-s1ifqUfqLLJf/1xcPqq5xRWHPhqcwX7WHR+/lWW6M8iVTUZzWQ/OjsieRAUlQuAZtae/9xve8k9+2s6ekRfCCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAT74v+93MTRw5aVgdrwBdYlXBJIpl87xhqk01ffvKMXAiATReTzncN4BcH/b5B6RqEpqCVB/UILnY6tnJuFwX2Ebw=="}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]},"0.0.2":{"name":"@ampatspell/sofa-models","version":"0.0.2","description":"Model library for CouchDB","repository":{"type":"git","url":"git+https://bitbucket.org/ampatspell/s2-models.git"},"main":"dist/index.js","scripts":{"build":"babel src --out-dir dist","build:watch":"babel src --out-dir dist --watch","lint":"eslint ./src --ext js || true","test":"babel-node node_modules/.bin/_mocha --require test/setup --recursive test","test:watch":"babel-node node_modules/.bin/_mocha --watch --require test/setup --recursive test","cover":"babel-node node_modules/.bin/babel-istanbul cover node_modules/.bin/_mocha -- --require test/setup --recursive test; open coverage/lcov-report/index.html","es":"babel-node","prepublish":"npm run test && npm run build"},"keywords":["sofa","couchdb","model","models"],"author":{"name":"ampatspell","email":"ampatspell@gmail.com"},"license":"ISC","devDependencies":{"@ampatspell/sofa-test-support":"0.0.1","babel":"^5.0.0","babel-core":"^5.0.0","babel-eslint":"^4.1.4","babel-istanbul":"^0.4.1","chai":"^3.4.0","eslint":"^1.8.0","mocha":"^2.3.3"},"dependencies":{"@ampatspell/sofa-store":"0.0.4","@ampatspell/sofa-util":"0.0.3","@ampatspell/sofa-logger":"0.0.4","bluebird":"^3.0.5","chalk":"^1.1.1","dasherize":"^2.0.0","lodash":"^3.10.1"},"homepage":"https://bitbucket.org/ampatspell/s2-models#readme","_id":"@ampatspell/sofa-models@0.0.2","_shasum":"6d7290422353f9fcab6ec1799288973920350862","_from":".","_npmVersion":"2.14.3","_nodeVersion":"3.3.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"6d7290422353f9fcab6ec1799288973920350862","tarball":"https://registry.npmjs.org/@ampatspell/sofa-models/-/sofa-models-0.0.2.tgz","integrity":"sha512-3b9HCzNpKgq5OkujXz/rNclSK+XBKWM2aAFLHLkwHv2aPM68CQnaaWH3Ne5yyi3fFEOe2uJ82vV0p1ZX1dCXuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnGXryYXssJUPGCVZJGFe1Vg3TKov90Ar0jFa8GZiY1wIgURV5dJSuXxiGekawVrPQRmEMbzXhEfDZdF7dKO9/6QU="}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]},"0.0.3":{"name":"@ampatspell/sofa-models","version":"0.0.3","description":"Model library for CouchDB","repository":{"type":"git","url":"git+https://bitbucket.org/ampatspell/s2-models.git"},"main":"dist/index.js","scripts":{"build":"rm -rf dist; node_modules/.bin/babel src --out-dir dist","build:watch":"rm -rf dist; node_modules/.bin/babel src --out-dir dist --watch","lint":"eslint ./src --ext js || true","test":"babel-node node_modules/.bin/_mocha --require test/setup --recursive test","test:watch":"babel-node node_modules/.bin/_mocha --watch --require test/setup --recursive test","cover":"babel-node node_modules/.bin/babel-istanbul cover node_modules/.bin/_mocha -- --require test/setup --recursive test; open coverage/lcov-report/index.html","es":"babel-node","prepublish":"npm run test && npm run build"},"keywords":["sofa","couchdb","model","models"],"author":{"name":"ampatspell","email":"ampatspell@gmail.com"},"license":"ISC","devDependencies":{"@ampatspell/sofa-test-support":"0.0.1","babel":"^5.0.0","babel-core":"^5.0.0","babel-eslint":"^4.1.4","babel-istanbul":"^0.4.1","chai":"^3.4.0","eslint":"^1.8.0","mocha":"^2.3.3"},"dependencies":{"@ampatspell/sofa-store":"0.0.4","@ampatspell/sofa-util":"0.0.3","@ampatspell/sofa-logger":"0.0.4","bluebird":"^3.0.5","chalk":"^1.1.1","dasherize":"^2.0.0","lodash":"^3.10.1"},"homepage":"https://bitbucket.org/ampatspell/s2-models#readme","_id":"@ampatspell/sofa-models@0.0.3","_shasum":"e97c6999243e6711c3aeeb3888067f76a4b8b579","_from":".","_npmVersion":"2.14.3","_nodeVersion":"3.3.1","_npmUser":{"name":"ampatspell","email":"ampatspell@gmail.com"},"dist":{"shasum":"e97c6999243e6711c3aeeb3888067f76a4b8b579","tarball":"https://registry.npmjs.org/@ampatspell/sofa-models/-/sofa-models-0.0.3.tgz","integrity":"sha512-n4flFeKaI8i8R8rOonE1ExWhNd7MFvnitD3oTqJ7PD98CkpsMOJEzqiHbMv1Xbq2bYBcLzkAqt/oUHuxVi+RAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzob/d4fdUYnOR9WC1YMs4HAPKhZdXqdOqplfg16T83AiB+AsysUzQpICAtz8Wff/0sFlj+XuQHfELaSqKfmGIsJQ=="}]},"maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}]}},"readme":"# sofa-models\n\nModel library for CouchDB\n\n## Declare model\n\n``` javascript\nimport { Model, name, attr, belongsTo } from '@ampatspell/sofa-models';\n\n@name('thing')\nexport default class Thing extends Model {\n\n  @attr('string')\n  name\n\n  @attr('string')\n  email\n\n  @belongsTo('something', { inverse: 'thing' })\n  something\n\n  update(props) {\n    _.merge(this, props);\n  }\n\n  static byName(name) {\n    return this.database('main').load('thing', name);\n  }\n\n}\n```\n\n## Register model\n\n``` javascript\nimport Models from '@ampatspell/sofa-models';\nimport Thing from './models/thing';\n\nlet models = new Models();\nmodels.register(Thing);\n```\n\n## Use\n\n``` javascript\nlet session = models.session({ url, database: (name) => 'test' });\n\nconst Thing = session.modelClass('thing');\n\nThing.byName('yellow').then((thing) => {\n  thing.update({ name: 'greenish' });\n  return thing.save();\n});\n```\n","maintainers":[{"name":"ampatspell","email":"ampatspell@gmail.com"}],"time":{"modified":"2022-06-12T14:39:42.589Z","created":"2015-11-10T19:19:54.423Z","0.0.1":"2015-11-10T19:19:54.423Z","0.0.2":"2015-11-10T19:21:17.809Z","0.0.3":"2015-11-12T16:08:07.124Z"},"homepage":"https://bitbucket.org/ampatspell/s2-models#readme","keywords":["sofa","couchdb","model","models"],"repository":{"type":"git","url":"git+https://bitbucket.org/ampatspell/s2-models.git"},"author":{"name":"ampatspell","email":"ampatspell@gmail.com"},"license":"ISC","readmeFilename":"README.md"}