{"_id":"relational_modeler","_rev":"37-3de518da1c1ad6b68eb90b62a930fc9f","name":"relational_modeler","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.1":{"name":"relational_modeler","version":"0.0.1","author":"","license":"MIT","_id":"relational_modeler@0.0.1","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./.dist/index.js"},"dist":{"shasum":"00d85952fece81434f3d596ad1f6f5265f0f7f34","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.1.tgz","integrity":"sha512-svhNVnC+C+Y6xbArO36c6NY52pQrT7QOBBT0gN+k/NjqBZZox6AXmdTOk/+vcbsu9u1ZfYtl4mCGHRoq7m0A4Q==","signatures":[{"sig":"MEUCIQDi7z45vaawi1geT++ypvZDG6ztWanXGS2Lk/PfeG1bUwIgVCymEabocwUidLytNIQSHKd1n9xAcSs3G2yx0Vod2i0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"00d85952fece81434f3d596ad1f6f5265f0f7f34","gitHead":"88fd4157beb321ba944883b170bcdab97a1542cb","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.1.tgz_1455405937195_0.016282270895317197","host":"packages-5-east.internal.npmjs.com"},"directories":{}},"0.0.2":{"name":"relational_modeler","version":"0.0.2","author":"","license":"MIT","_id":"relational_modeler@0.0.2","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./.dist/tests/index.js"},"dist":{"shasum":"01f986ade2e4f0f1d9da3771a488de2673237ae1","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.2.tgz","integrity":"sha512-ZDHuyKzrBuvb4qQ7D9EQK52tnXQT4pCvAnEUUlah9eK1h5FXztYt1WugulrPVUqtK+a5VphSVtXa+8ifj5t4wA==","signatures":[{"sig":"MEUCIHCDe4PB4+WUrwzoPKZxTN5xIMeGo+8FM9DP9Z04AeTvAiEAhbO0fSj5+rSyPgxycm+etaZWy+JgnUdvyMmAiUYfzhY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"01f986ade2e4f0f1d9da3771a488de2673237ae1","gitHead":"38f6588b6a18ea6aa82c31e19a1244519f6eaad5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.2.tgz_1455406047340_0.524143805494532","host":"packages-5-east.internal.npmjs.com"},"directories":{}},"0.0.3":{"name":"relational_modeler","version":"0.0.3","author":"","license":"MIT","_id":"relational_modeler@0.0.3","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"node ./.dist/tests/index.js"},"dist":{"shasum":"735a38548e4bd4211dfa92a4a6d876bacd403b51","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.3.tgz","integrity":"sha512-wixg5nCTYVwwsqM9/ENXTR5tFfnWMyLHOEWFb30fyKrWGfu5i69lsem4m9+R4CqMTD6+n9TRnU82iSQIIL+fYg==","signatures":[{"sig":"MEUCIQDu+lItlWGRVgS3F2HaJ+wKR6bnWjvtIGOD+6BHKCo8QQIgZPn25QOttDLctZ5EZ2BAB9c5yPIjT23SUwpMpttfYk8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"735a38548e4bd4211dfa92a4a6d876bacd403b51","gitHead":"6ab13bcbbdb237056799dd3845eec5d363ee34ca","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.3.tgz_1455406472620_0.3468800683040172","host":"packages-6-west.internal.npmjs.com"},"directories":{}},"0.0.4":{"name":"relational_modeler","version":"0.0.4","author":"","license":"MIT","_id":"relational_modeler@0.0.4","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"bf09039db5879b49ac975de084c0d6af354d6364","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.4.tgz","integrity":"sha512-FaOK+sQwDHkiBoIvxt+NkitNJXeDSsjSsrsb/n1+KHBgzLWuh569EkZZTEfHCNcSEpZ1TUxLiLFuvYaBZywmlg==","signatures":[{"sig":"MEYCIQC9Wh8rAqaQ8ofPFMPhFOM8cEYbFvYGjS09mr1/hCaoPwIhAIDdbiGHUoCXPSkwb06nQOBHazrXZsh0GTJwnbqWgHfU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bf09039db5879b49ac975de084c0d6af354d6364","gitHead":"6de92a69ebbc6334f4f76bbf2b2f8162448e5fb5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.4.tgz_1455406701348_0.9912392166443169","host":"packages-9-west.internal.npmjs.com"},"directories":{}},"0.0.5":{"name":"relational_modeler","version":"0.0.5","author":"","license":"MIT","_id":"relational_modeler@0.0.5","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"8d2efd587bb491e774a2a6dafa25712a95591e93","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.5.tgz","integrity":"sha512-+WfBoVXuITtSzejBqpQaRdcdFT/LGGNcUmLgVFlLV5dnqOCKR37nBFrcZ0sOoC5nXzpbbWACt0b41pRAVY5FXQ==","signatures":[{"sig":"MEYCIQCXFTzcmWO41nc+AdlhnfBhxJTyufEdpm7nyWWQEGALZwIhAJGEDUKAOBFn7Wmcz+gll6ZzGBZl3E1ZZlJ6AdUAs3Kw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"8d2efd587bb491e774a2a6dafa25712a95591e93","gitHead":"9b8316d233e0c0323eb5e8e65b39535384bfcc42","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.5.tgz_1455407490383_0.6705914160702378","host":"packages-5-east.internal.npmjs.com"},"directories":{}},"0.0.6":{"name":"relational_modeler","version":"0.0.6","author":"","license":"MIT","_id":"relational_modeler@0.0.6","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"7dab567e48e6155abd394a489f15ed45aa772660","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.6.tgz","integrity":"sha512-tB6+I4FiIusxkl+qUI4EZ9NxzW/DCVd8Nm+3RlNGXTu9ylXlVuITow3Nz45hGL00umJsEZ6oGkKA9C8CunWKUQ==","signatures":[{"sig":"MEUCIBIsJuq3jhQlpkke6B0eE3gZg1CuYvW1UfhJTWuydeDLAiEA0mzLocMV7VNonyvstVmlYhYUxjAjBV0IxzyFd8TagGE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7dab567e48e6155abd394a489f15ed45aa772660","gitHead":"244ed6fcc8bc78f745303b51458745a6451521ed","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.6.tgz_1455407566771_0.788465321296826","host":"packages-9-west.internal.npmjs.com"},"directories":{}},"0.0.7":{"name":"relational_modeler","version":"0.0.7","author":"","license":"MIT","_id":"relational_modeler@0.0.7","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"2f6a1fa9c7ffb6948e73fcaca0c83a960c72dcc6","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.7.tgz","integrity":"sha512-44r9tvx2CRIkAhbv+YD+fyITO43aQkNpo9hMSX5VLpjpusfcSadn9KbF7RxGYIq9T/Q6ppsFtjtfbjYMUSwcGw==","signatures":[{"sig":"MEYCIQDyjRM3OZhfSZX2QGDEDhZozPxMlmDeswEGyqKE31po2QIhAN/UD2UpqVpkb037ow8Iv2xbKrSbriyf9BAkG25fDQC5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2f6a1fa9c7ffb6948e73fcaca0c83a960c72dcc6","gitHead":"40b65abef243bbaaab2efa48306a1cf58ce5f9db","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.7.tgz_1457043306637_0.7678760823328048","host":"packages-13-west.internal.npmjs.com"},"directories":{}},"0.0.8":{"name":"relational_modeler","version":"0.0.8","author":"","license":"MIT","_id":"relational_modeler@0.0.8","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"d245d56cf608aa9978aa8aabd9101d47689dda87","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.8.tgz","integrity":"sha512-sLZkdcKYkdZNpUK3PnYQmS+O6/sDeJba0XwR9+rBUbGifpdONtf8Kjkb0p1Fk7lCN9cbp6ngMfZjs/MntWf3/g==","signatures":[{"sig":"MEYCIQDeOwVu6qhQFOHZfh9FCoJLtsDQRnpv75TOyDiyGBE87QIhAJHYlwqU8tffTlFi/yvEePbmCc2zX2VVeDvgrEQyGgUh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d245d56cf608aa9978aa8aabd9101d47689dda87","gitHead":"0315e288e96b26d1b2e03d289a5caea62d532dc5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.8.tgz_1457043457528_0.9877825302537531","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.0.9":{"name":"relational_modeler","version":"0.0.9","author":"","license":"MIT","_id":"relational_modeler@0.0.9","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"bc0146b3fa4a24628300acbbdd22a9f1bcd25653","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.9.tgz","integrity":"sha512-gMs6tx68JeaFE0DOYUAdCseNpHDY/akNZVs4+qLhs8YOhDLLZFvvGxzeblHIyzQJJSK73iZNgPY/p7/tslSscA==","signatures":[{"sig":"MEUCIQDNNo3ZmTpvCEoebFMj6xdDtnzT4Ewxk8XZh6Gw4AydwQIgHr/nyQsnD7FDG4XsZVOKmMDEhg5lJIqVvzTq6AtdH4k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bc0146b3fa4a24628300acbbdd22a9f1bcd25653","gitHead":"b0adc774e8d8f403c4aa5201254f336ef1d1f456","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.3.12","description":"","_nodeVersion":"5.5.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.9.tgz_1457053193231_0.4543203117791563","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.0.10":{"name":"relational_modeler","version":"0.0.10","author":"","license":"MIT","_id":"relational_modeler@0.0.10","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"03098062eba7653777f5e8a0312f1ec467696567","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.10.tgz","integrity":"sha512-sjzl0/xulXBZjvp78iQoKd7nEHj+lP+cj3tk35TA8KVkK4UzMdm7b+HJlsbKwCirIyAk2NsSSymdhYnhBx45AA==","signatures":[{"sig":"MEQCIEMOLeAKl4sOZexECn/dLLEkSQ+2XKa8djBXPIxdZ9LzAiAuR1UWQS0iEK209KvU/URN/VcnXbq52X4xl4lhjmO+TA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"03098062eba7653777f5e8a0312f1ec467696567","gitHead":"e63933471ceb24373f3cb4da644b98956524369e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.10.tgz_1471768727959_0.6980838284362108","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.0.11":{"name":"relational_modeler","version":"0.0.11","author":"","license":"MIT","_id":"relational_modeler@0.0.11","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"fae4ecf3635515e7c10cf76bef9daf80f0ca36db","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.11.tgz","integrity":"sha512-+TqPRugPRsPgXhIUVHIQbJxLLDPQPe8LR/7cm7Kc5wK2rCYWIzLF3JSx6vuQqhc/ohp9MxKBO3n/bjT9kT2KSw==","signatures":[{"sig":"MEUCIHA/ulY0EThFkjd8XnliBEXuSsJlvipRorrDJciq1jUAAiEA5JUIkIO6274voBc+lZkUMJ36nfpHw0u7bBOTGp587Fk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"fae4ecf3635515e7c10cf76bef9daf80f0ca36db","gitHead":"555b94ea8546aec3158b447f140ed45dc7dda2e5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.11.tgz_1471768942488_0.8887248178943992","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.0.12":{"name":"relational_modeler","version":"0.0.12","author":"","license":"MIT","_id":"relational_modeler@0.0.12","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":"./bin/relational_modeler"},"dist":{"shasum":"044fa8b1050323a6004ffaabc07fccc874648458","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.12.tgz","integrity":"sha512-J8rSPeLyoA1T3E0o+T07JiosMHA5iFqTqKRDlUM1Nvb/E8922Qis75Kh7esadQeQ3QiDbVqeRTYrRKM4JfTUXA==","signatures":[{"sig":"MEUCIC4mmilUfQtN3KSy2xhdr3xDDjAc8KyNjY2/x6vOoSwAAiEAxu2K/8tUUqGMGjPda+x/O9xQdCo3+q1HwY+9l2Ok1Hg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"044fa8b1050323a6004ffaabc07fccc874648458","gitHead":"8f806593221dc936d1cf9ed8e12d59e88a5cafea","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.12.tgz_1471769029786_0.5877944151870906","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.0.13":{"name":"relational_modeler","version":"0.0.13","author":"","license":"MIT","_id":"relational_modeler@0.0.13","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"dist":{"shasum":"5507120bbc918ae9eafb9d7d14425947af1463f6","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.13.tgz","integrity":"sha512-peVfYVdpzFBwWpgbEjY1VPCQh1Ov8BwKPzX1e8Fpq+gxRnxG5oXqhlw0tMWFHkBunD7wRTw+ROvzz76O89nQ3w==","signatures":[{"sig":"MEUCIQDjCDKbOgP8h45DwXLDWP3vEoQvA/YwDJDOdwTchjsJvgIgYU7ZDHLbzXbaoXScKqGTkanLfSoN2ZCV40bgeCaye3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"5507120bbc918ae9eafb9d7d14425947af1463f6","gitHead":"b31a2b92f3fff817cd33a5c28289acf21233d1a8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.13.tgz_1471769355986_0.10089317779056728","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.0.14":{"name":"relational_modeler","version":"0.0.14","author":"","license":"MIT","_id":"relational_modeler@0.0.14","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"dist":{"shasum":"692f04ae5872271df3934218aa4e94d74ff1826d","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.14.tgz","integrity":"sha512-3lHXrqQyftOzeIebzovst9qVbgoG7eWe8j7ZAomruP4Y2esn5XIAY135KMVG/Mu811V2M6WGA5+xgK8jMCtCvw==","signatures":[{"sig":"MEYCIQDt3jtMp9iMOz41CsVoMTKVJ2bP/sZPmC7X7lM2m/lBXgIhAOaeBqArETj10IG/wcNAqayQeuvISKfq3LS9UWllf/kN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"692f04ae5872271df3934218aa4e94d74ff1826d","gitHead":"becc6a7005479ff8e3b15c0bf1abb098bbf7ce75","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.14.tgz_1471769491576_0.8273353003896773","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.0.15":{"name":"relational_modeler","version":"0.0.15","author":"","license":"MIT","_id":"relational_modeler@0.0.15","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/index.js"},"dist":{"shasum":"d6fc754b1ddd436c7d921a63aa8fae2d6d148f87","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.15.tgz","integrity":"sha512-10kYgHZXruB52q27Sx+javZBltDKn9l4OubWkc398JmK+HJDVLJmHXVjNUoHOfQ10YLkDYQNmT6rXznGkalV8A==","signatures":[{"sig":"MEQCIFcIManetPg7L32f2Vi2D9wIBIqijBXMdR8XZewB/5X2AiBzDsao7N96hG5PvJk9oYTYUjcG4+q6GC2JtsCOByBdRw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"d6fc754b1ddd436c7d921a63aa8fae2d6d148f87","gitHead":"1e7b13c417e894c94516bf29854907655741c872","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.15.tgz_1471770114861_0.5216648243367672","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.0.16":{"name":"relational_modeler","version":"0.0.16","author":"","license":"MIT","_id":"relational_modeler@0.0.16","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/index.js"},"dist":{"shasum":"247a54f9f21db02de740046fd8121d3c6aef4843","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.16.tgz","integrity":"sha512-PtXwGKMBvqounp2jjSQeVPWwN0jzGsF2BSq5O1CYERbAxEFqPGKK9wLNU2kjWwjyeCX+3llY8CmokvS4PiX7Pg==","signatures":[{"sig":"MEUCIQCOrlr2lW6tHi3Bd8bkobQChwc8eePqp+WglFEEZFuTJwIgMvmloYy6z21WIlp07hQXRWpZLiy4iZyKasxZqX7vf1M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"247a54f9f21db02de740046fd8121d3c6aef4843","gitHead":"9e9cf59062f33a27e7c75701a82cd524c74d637c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.16.tgz_1471999095241_0.9405989674851298","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.0.17":{"name":"relational_modeler","version":"0.0.17","author":"","license":"MIT","_id":"relational_modeler@0.0.17","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/index.js"},"dist":{"shasum":"00499942c80ac59a105318fb5da3e9f36035d337","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.0.17.tgz","integrity":"sha512-5WWypKWAGCNpUfuHHLTRICHWyV7fzUhU8ctitIRItSJYmkqkfzXQ090ELbAM/CGDpmZJJEO8X7Z9L0Kg3Ay2Gg==","signatures":[{"sig":"MEUCIELiu8CTN/TdUhdiXUfE74HWjg9YBJwr50Nsc1M7mTBPAiEAtnfkP2qZ12WKlN51vhvk7jeqS9ibwGDZjYX89oAMNxk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/index.js","_from":".","_shasum":"00499942c80ac59a105318fb5da3e9f36035d337","gitHead":"096016f5b20f7d8e48432960a3ddd407e526b43c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.0.17.tgz_1472002056407_0.2083329726010561","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.1.0":{"name":"relational_modeler","version":"0.1.0","author":"","license":"MIT","_id":"relational_modeler@0.1.0","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"9b2c8f918e6767138deaf9976cd0f36876e5e4d8","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.1.0.tgz","integrity":"sha512-hqLePx9VUChsrvkepglkfUSk2B6Kv4LS17KZeu4qS2J1sNeBqYAbH81Fx1I708aCbZB1bCYpfBUMzbJEfGi4Fg==","signatures":[{"sig":"MEUCIQDcmSmfn/l5N9mR8bZuIXus+wnI0RfMlUtFPwe4V8fDfQIgLRB3Id0fIQ8Zz0TZl5HkQObZ+l+gcmVKNz/GOLxZgMg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"9b2c8f918e6767138deaf9976cd0f36876e5e4d8","gitHead":"d2b4d56947d10df5a72509e8e7e4b98604d4d07c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Sample Model: ```` model_name {   schema_name {     table_name {       !primaryKey       attribute     } -> foreign_table","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.1.0.tgz_1472075095776_0.9985570365097374","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.0":{"name":"relational_modeler","version":"0.2.0","author":"","license":"MIT","_id":"relational_modeler@0.2.0","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"001d66c98110bc47260b5c10e461919c3c27b265","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.0.tgz","integrity":"sha512-bpmMUMPmhsOUtmE5FES09G0ePmZRWY7jfL8FjPc6Fbhpl+0ojcLyWINKPOWl/c35RkiTEGZ/2ay4/OSO09Ttdg==","signatures":[{"sig":"MEUCIHuPH65aD6cFWcz7Lw/WbT0159XPB4ldrbou/r7YWduhAiEAgHsbWSibg8rY44maxC0x74nDMwSrrR2sN3bJG65VeAI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"001d66c98110bc47260b5c10e461919c3c27b265","gitHead":"7f8279740fc4704268289c9edcceb24b25fff45e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Try the web interface at: [https://blakelapierre.github.io/relational_modeler](https://blakelapierre.github.io/relational_modeler)","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.0.tgz_1472516909292_0.6402019439265132","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.1":{"name":"relational_modeler","version":"0.2.1","author":"","license":"MIT","_id":"relational_modeler@0.2.1","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"956e291e3dda3d8595c5419cd7f154d172539969","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.1.tgz","integrity":"sha512-vF1cOIZIUR813+qrPaTgEH6GZs13YbyqX4N62ofaxqtdEQWK4e28keIHvCc7dgRg9v1thEQ7vG51LgJ+1d/4+Q==","signatures":[{"sig":"MEUCIQCr3ITDPgHFVJ9pt/l62l3Y2PRPOGl0YlPcu8c1yA0uKAIgV9dtb99RVPS8VmUWpBVP/PU58QGKhljmIfXk/OYi7qQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"956e291e3dda3d8595c5419cd7f154d172539969","gitHead":"75a84041d0c34ebc3ea0528d5802e9c0b8bf350e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"Try the web interface at: [https://blakelapierre.github.io/relational_modeler](https://blakelapierre.github.io/relational_modeler)","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.1.tgz_1472517099141_0.27288047201000154","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.2.2":{"name":"relational_modeler","version":"0.2.2","author":"","license":"MIT","_id":"relational_modeler@0.2.2","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"371832925a646444c6925fe0e60ee21cc0b06bd3","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.2.tgz","integrity":"sha512-34hBBX++rYjUSSzCHV6/Df9yk8R+dI3u2ekwYUjtSrjISq1GDJoQhdRxp1GARE5D0rMc5zfFEM05NF4frTYVYQ==","signatures":[{"sig":"MEQCIGHNrB9Gdids5M7LagucYSp29AwSOG9kFkJhzDk+s2hwAiAn/pUb1BMpt6gobUrqW3I9kspACsmgUNNPPTDiTwPZZQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"371832925a646444c6925fe0e60ee21cc0b06bd3","gitHead":"e3ddc0640bb20153ba24a30831189ef3f12d2c36","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.2.tgz_1472517197922_0.5009563814383","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.2.3":{"name":"relational_modeler","version":"0.2.3","author":"","license":"MIT","_id":"relational_modeler@0.2.3","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"bcbf4d8f2369dc0c2b9d0275aea24848013fe0f3","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.3.tgz","integrity":"sha512-y4iQOSLl/yNJnWJQgFF09hcLaEvizH6E/UaWWYeMSARNveh8b+DDEAqHRoIPrM0nZ2rmngw67lSIj/lm66zJMw==","signatures":[{"sig":"MEQCIFWIkUO/IxlOpp4Bg/Q+DoBosUexDfWmlwTxaiaWzIkVAiBGUYdyroY91O9icXVBzx2kFfY29Mk8VjtT683oui9Nsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"bcbf4d8f2369dc0c2b9d0275aea24848013fe0f3","gitHead":"fe00a54a01a818f733bb9d4858b4370bc5f1a659","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.3.tgz_1472858992402_0.6239673167001456","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.4":{"name":"relational_modeler","version":"0.2.4","author":"","license":"MIT","_id":"relational_modeler@0.2.4","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"2656851b2023f8f4816bc69f2c6082971356ec86","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.4.tgz","integrity":"sha512-kgZOQN7rpLnmkviz6GE+5yIfHohs4RfaRTsEYQQF0eZphrwM1PIDZOVrxso/XEVpZhb5QcJeh37dkYA/VYixZQ==","signatures":[{"sig":"MEUCIQCJDQ6dv8jNdojB7rOyALmUJY3KVAQMYufqEDzUoC5NkwIgfRg5jxoqMezcDov+PKtx1K+LlTZx+7sHrkPw52W//Ck=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/cli.js","_from":".","_shasum":"2656851b2023f8f4816bc69f2c6082971356ec86","gitHead":"4d29b011c68377fa972a98ea1db1ccb319c1f8c0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.4.tgz_1472859103771_0.1126423787791282","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.5":{"name":"relational_modeler","version":"0.2.5","author":"","license":"MIT","_id":"relational_modeler@0.2.5","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"35fc565e6c3ac3aef0e70ea1ee518c49afc3dbe5","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.5.tgz","integrity":"sha512-O5j8CcFO9k7hYby2osfCRhIffXfWwth5ugjJcHRdE7q7bkDE1PzgcR79yMiq04FIzO5Rk3qyj7QwwLnXpsyWTA==","signatures":[{"sig":"MEQCIHH1RHIYQLEq10wFTdIAKcIyLZ22988j2shxLoxndIHiAiA12Q4YIranYWDw5vEKL/B63+A10lTzQtRIDVGzFLJhkA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"35fc565e6c3ac3aef0e70ea1ee518c49afc3dbe5","gitHead":"378f19fbd4f25da594353d8a7577fe7e21859793","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.5.tgz_1472962659836_0.9817448942922056","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.2.6":{"name":"relational_modeler","version":"0.2.6","author":"","license":"MIT","_id":"relational_modeler@0.2.6","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"42bc4c40e36ae70f33f8adb7805aa62b0ba74330","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.6.tgz","integrity":"sha512-rS55qiSG8bcLqI9VaxtQ1uvje/TZAyWhJ/N5RHcswfV9T35SPkipw5TRgSOuOg7SmUjsig+hOg0VXyEJrERtSw==","signatures":[{"sig":"MEUCIC8ZxyD/Nop+m47LwMiqb841ILtcj6VW2LDJBK1Gr//sAiEA9VprtSrFDpNnIz/qH7XfnVhOuT5ehUk4J13uKiv7YiY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"42bc4c40e36ae70f33f8adb7805aa62b0ba74330","gitHead":"7dafb7f26c9359ef7f2fb0ee77d14e1f4ae4ac84","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.6.tgz_1472963078300_0.3685417724773288","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.7":{"name":"relational_modeler","version":"0.2.7","author":"","license":"MIT","_id":"relational_modeler@0.2.7","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"e05fedf171a4d16fa5f08a785908f62575647add","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.7.tgz","integrity":"sha512-ZjomXQwUiXPXMiCxmtHXMLKLYyPX8+knr1pm3CxNRTCGxlIa9fIm/mfc3KizIhn9WDkKDCKez/Jd4GnBDi4FEw==","signatures":[{"sig":"MEYCIQDgdWqXF6z8uAxl38/DQyDWSftv21PmtZzaf4rnonClTwIhAJuO/QJCsk5DBelquR3BpTrWRpBZAKz0HHCAfqOi/ZzL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"e05fedf171a4d16fa5f08a785908f62575647add","gitHead":"95dac029aee4e9aaaabd3a6d79cb685febbf99c9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.7.tgz_1472963206047_0.13286301214247942","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.2.8":{"name":"relational_modeler","version":"0.2.8","author":"","license":"MIT","_id":"relational_modeler@0.2.8","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"d1351fae81ddf80d9bc84ed91ac73895fd59f50f","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.8.tgz","integrity":"sha512-Dmj93PhScIjMO/GVtoyksTLSl7gRE7L0KZwyO2DuR2UPUBf9SuHkQbJkC/11JR/QLUMZANzABCDapmLoDzgw5g==","signatures":[{"sig":"MEYCIQDzmQx5dM0S72kN5fPHgHkB3IwkWof54uGktJpW8djcugIhALjVlzot4+pm2Mw2iCwlAk6TrZ0WSK+iteDg3cPRvSdl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"d1351fae81ddf80d9bc84ed91ac73895fd59f50f","gitHead":"09ae3bf181707caa34a3b5638f30ded0cd27e319","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.8.tgz_1473196309345_0.4904768099077046","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.2.9":{"name":"relational_modeler","version":"0.2.9","author":"","license":"MIT","_id":"relational_modeler@0.2.9","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"1f8a27aec8d73ea78d77f1fd6af98024b0f34131","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.2.9.tgz","integrity":"sha512-Z/P/og7L0NU64XtBJliTkjGetSOr8duxZg8QQw6dPzcPWITgEAw7WbVD5buT2ru3dV+UwjMRq7FYFXVTqtEHWQ==","signatures":[{"sig":"MEQCIH4OqRqe6vG9jd3d5RiFLJjVS+ssV5xpufEl5PP2XDeWAiAPlzXjlKfwRlf0d9eItOh6QfkNN3AMJsdA27cHUKttSg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"1f8a27aec8d73ea78d77f1fd6af98024b0f34131","gitHead":"b4b3e55e229f41a388c6835844349ad09c9c34ec","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.2.9.tgz_1473314554362_0.7442370401695371","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.3.0":{"name":"relational_modeler","version":"0.3.0","author":"","license":"MIT","_id":"relational_modeler@0.3.0","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"48dee150947e9f32883f960ada116b5aaaa5bb2b","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.3.0.tgz","integrity":"sha512-bOJsEWFS0WbSguqKwW0EEgsfkktHQW+flSLot7zOYXQsCHdoveU6VchKv5KGz9DM9JlSV5ZyFt/QgzWOanx5nA==","signatures":[{"sig":"MEUCIQC5OchtHvqyIT6C50gyt05+MzQvpiVn+1aOOl8Y4Nu9EgIgbGNZlW8LywnYs3hQa+WWceZQciJ5umERYqemDuizKYs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"48dee150947e9f32883f960ada116b5aaaa5bb2b","gitHead":"beb8fb098f66fb5c9989686d531bd6f3102d8f78","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.3.0.tgz_1473386504997_0.11739086708985269","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.3.1":{"name":"relational_modeler","version":"0.3.1","author":"","license":"MIT","_id":"relational_modeler@0.3.1","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"51ceed4bbfd40705616b382991f17ffe857d13c2","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.3.1.tgz","integrity":"sha512-qkc+T1OK2ojbqhrCl4VnsTmwoMDpWfgewcJyL1pSRUqjsSwwTQagsvOlOmz+aSNi+Lc44MIPKLgmG9KjukIjsw==","signatures":[{"sig":"MEYCIQDwX1POoid/iPSoCSNrCudPDOY8cviEWuUWqoaKa98g+wIhAM7WZW6WNr9av7OHlCKbVQfzHIhmNzUrRmxD6vPjRaDk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"51ceed4bbfd40705616b382991f17ffe857d13c2","gitHead":"2e5f0a3ed0053dbc004c2b3d0e4d9254f31f89d3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.3.1.tgz_1473709741300_0.6817411724478006","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.3.2":{"name":"relational_modeler","version":"0.3.2","author":"","license":"MIT","_id":"relational_modeler@0.3.2","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"078cfda2bb753907a0166f11d7530749e82c3997","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.3.2.tgz","integrity":"sha512-IXBxbS63xuxm++s6x9Ub7Au5Mg3lORgjPUz0CV7l7w77h3/i/g/gc0kO8v9KkQYEcpJwKH0tD0iiRvBFluS3Gw==","signatures":[{"sig":"MEQCICsSndu4piLDSPPhVb4qdV+X6hJiIYgk0qHFoPSRblqhAiAwMdUEbkRzHnSXfFOskoxoGjHS76emqo/8eQjna/p8eQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"078cfda2bb753907a0166f11d7530749e82c3997","gitHead":"9dbc4e6397bcf441f8c13b614a4830143156158a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.3.2.tgz_1473711767025_0.12528786063194275","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.3.3":{"name":"relational_modeler","version":"0.3.3","author":"","license":"MIT","_id":"relational_modeler@0.3.3","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"f45d5db45ce628b749445a3072e4baa988fde823","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.3.3.tgz","integrity":"sha512-S8peMemfdmoVqECI0KSbKdlGryfbqQqL4Wi+OLzEqmykhM+bxbtmC5jrtRIOxG+KaaVxYY4wHwRzautDla72Wg==","signatures":[{"sig":"MEQCIG9oH2D4DO5skK8SXRxX9Ocw8sEXVSamydgJ9cb75R8ZAiBnkLfx+9Jx2CK50AHvgAyYeM8xHkF+yWH8L/SmpODk1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"f45d5db45ce628b749445a3072e4baa988fde823","gitHead":"7fcfe588fa49f7f9d9f19aeb90bdaf67aab866cf","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.3.3.tgz_1473744266320_0.2930095612537116","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"0.4.0":{"name":"relational_modeler","version":"0.4.0","author":"","license":"MIT","_id":"relational_modeler@0.4.0","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"homepage":"https://github.com/blakelapierre/relational_modeler#readme","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"bin":{"relational_modeler":".dist/cli.js"},"dist":{"shasum":"9c62e5d93831c2666ee9e1101977999b917a4dd0","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.4.0.tgz","integrity":"sha512-YJaexadU0HkRDy9ycb7QgiY+NMLyHAd7b32ELuFQ12n1NjN10DikR8F/O7S/IbQ9XU+HV8B3mw122NKIG2mDQA==","signatures":[{"sig":"MEYCIQDmkAnNA6ia3JQQHOLr9bdkyGUPabnAV/qC6YsongT5UgIhAKpJbESRIFkZRycldAwu5agu/3gLDUb8mxFeITlLOeFN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":".dist/api.js","_from":".","_shasum":"9c62e5d93831c2666ee9e1101977999b917a4dd0","gitHead":"f2fdf1d0a0c7caf0aed4a3519c705c0ac6c19f70","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"repository":{"url":"git+https://github.com/blakelapierre/relational_modeler.git","type":"git"},"_npmVersion":"3.8.6","description":"A language for describing logical relations and generating SQL schemata to enforce them.","_nodeVersion":"6.0.0","dependencies":{"tsort":"0.0.1","lodash":"^4.2.1","ohm-js":"^0.9.0"},"jshintConfig":{"esnext":true},"_npmOperationalInternal":{"tmp":"tmp/relational_modeler-0.4.0.tgz_1473897296924_0.27789172576740384","host":"packages-12-west.internal.npmjs.com"},"directories":{}},"0.4.1":{"name":"relational_modeler","version":"0.4.1","description":"A language for describing logical relations and generating SQL schemata to enforce them.","repository":{"type":"git","url":"git+https://github.com/blakelapierre/relational_modeler.git"},"main":".dist/api.js","bin":{"relational_modeler":".dist/cli.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","funding":[{"type":"cashapp","url":"cashapp:$blapierre1"},{"type":"bitcoin-coinbase","url":"bitcoin:35thwbdC7MaA67jQzMB8a5iCyMG86PgVgM"},{"type":"bitcoincash-coinbase","url":"bitcoincash:35thwbdC7MaA67jQzMB8a5iCyMG86PgVgM"},{"type":"ethereum","url":"ethereum:0x13CEb7d4Fa25AC4dBE2DE4C167ff3dC6e4330D94"},{"type":"base-usdc","url":"baseusdc:0x9465085Aa7487910Ee30d4fF159B0A83270E0Bd0"},{"type":"bank-account","url":"routing:121202211,account:440054826688"},{"type":"brokerage","url":"routing:071000013,acccount:59385380093713209"}],"license":"MIT","dependencies":{"lodash":"^4.2.1","ohm-js":"^0.9.0","tsort":"0.0.1"},"jshintConfig":{"esnext":true},"gitHead":"0c10a8c7bfe2266c8b5dcaeb09ca235e04a54a5f","_id":"relational_modeler@0.4.1","bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"homepage":"https://github.com/blakelapierre/relational_modeler#readme","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-+z0fFy3vJkzFYBzGeWrEXa/lU65oOaAz0P/yNaB9phqqmeYJOQLnw8UqFv1mp5GXHi4/N7c6jcXaespcNh0b4A==","shasum":"d4f705ef2a57b0a314e47203d4392df21a2264e3","tarball":"https://registry.npmjs.org/relational_modeler/-/relational_modeler-0.4.1.tgz","fileCount":59,"unpackedSize":876303,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICBrV3q4yrW02DE/y+cSiK3jpivn6ERn66cAINZZkeUiAiALUlulqegkU+q5bqxalWtdRX6+/uUH4NQRhNcyZC4FDg=="}]},"_npmUser":{"name":"blakelapierre","email":"blakelapierre@gmail.com"},"directories":{},"maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/relational_modeler_0.4.1_1776888172496_0.4434587212545864"},"_hasShrinkwrap":false}},"time":{"created":"2016-02-13T23:25:39.184Z","modified":"2026-04-22T20:02:52.777Z","0.0.1":"2016-02-13T23:25:39.184Z","0.0.2":"2016-02-13T23:27:29.300Z","0.0.3":"2016-02-13T23:34:36.328Z","0.0.4":"2016-02-13T23:38:25.382Z","0.0.5":"2016-02-13T23:51:32.503Z","0.0.6":"2016-02-13T23:52:50.649Z","0.0.7":"2016-03-03T22:15:08.219Z","0.0.8":"2016-03-03T22:17:38.702Z","0.0.9":"2016-03-04T00:59:54.438Z","0.0.10":"2016-08-21T08:38:48.200Z","0.0.11":"2016-08-21T08:42:25.113Z","0.0.12":"2016-08-21T08:43:50.041Z","0.0.13":"2016-08-21T08:49:18.410Z","0.0.14":"2016-08-21T08:51:34.124Z","0.0.15":"2016-08-21T09:01:57.418Z","0.0.16":"2016-08-24T00:38:18.979Z","0.0.17":"2016-08-24T01:27:38.868Z","0.1.0":"2016-08-24T21:44:59.862Z","0.2.0":"2016-08-30T00:28:30.666Z","0.2.1":"2016-08-30T00:31:39.375Z","0.2.2":"2016-08-30T00:33:18.160Z","0.2.3":"2016-09-02T23:29:56.092Z","0.2.4":"2016-09-02T23:31:47.464Z","0.2.5":"2016-09-04T04:17:40.057Z","0.2.6":"2016-09-04T04:24:41.991Z","0.2.7":"2016-09-04T04:26:46.305Z","0.2.8":"2016-09-06T21:11:50.301Z","0.2.9":"2016-09-08T06:02:34.594Z","0.3.0":"2016-09-09T02:01:46.945Z","0.3.1":"2016-09-12T19:49:03.223Z","0.3.2":"2016-09-12T20:22:48.837Z","0.3.3":"2016-09-13T05:24:29.332Z","0.4.0":"2016-09-14T23:54:59.200Z","0.4.1":"2026-04-22T20:02:52.684Z"},"bugs":{"url":"https://github.com/blakelapierre/relational_modeler/issues"},"license":"MIT","homepage":"https://github.com/blakelapierre/relational_modeler#readme","repository":{"type":"git","url":"git+https://github.com/blakelapierre/relational_modeler.git"},"description":"A language for describing logical relations and generating SQL schemata to enforce them.","maintainers":[{"name":"blakelapierre","email":"blakelapierre@gmail.com"}],"readme":"Try the web interface at: [https://blakelapierre.github.io/relational_modeler](https://blakelapierre.github.io/relational_modeler)\r\n\r\nSample Models:\r\n````\r\ndatabase_name{\r\n  schema_name {\r\n    table_name {\r\n      @primaryKey,\r\n      attribute\r\n    } -> foreign_table\r\n\r\n    foreign_table {\r\n      @primaryKey,\r\n      attribute? boolean\r\n    }\r\n  }\r\n}\r\n\r\nexperiments { @id, inserted_at timestamp } {\r\n  binary {\r\n    coin_flip {\r\n      outcome { 'H', 'T' }\r\n    }\r\n  }\r\n\r\n  cats_on_pants {\r\n    cat { name }\r\n    cat_position { position { 'pants1', 'pants2', 'both', 'neither' } } -> cat\r\n  }\r\n}\r\n\r\ndist  {\r\n  accounts {\r\n    accounts {key}\r\n  }\r\n\r\n  features {\r\n    features {description}\r\n    accounts_features -> accounts.accounts -> features\r\n  }\r\n\r\n  billing {\r\n    transaction {amount numeric} -> features.accounts_features\r\n  }\r\n}\r\n\r\ndist {@id, inserted_at timestamp} {\r\n  accounts {\r\n    account {key}\r\n  }\r\n\r\n  features {\r\n    feature {description, unlocked boolean} -> feature (parent_feature)\r\n    account_feature -> accounts.account -> feature\r\n    feature_cost {cost numeric > 0} -> feature\r\n    feature_schedule {global_unlock_value numeric} -> feature\r\n    feature_progress {contributed_value numeric} -> feature\r\n  }\r\n\r\n  transactions {\r\n    transaction -> accounts.account\r\n    transaction_detail {amount numeric} -> transaction\r\n    transaction_account_feature -> features.account_feature -> transaction_detail\r\n  }\r\n}\r\n\r\ndist {@id, inserted_at timestamp} {\r\n  accounts {\r\n    account {key}\r\n    account_feature -> account -> features.feature\r\n  }\r\n\r\n  features {\r\n    feature {description} -> feature (parent_feature)\r\n    feature_cost {cost numeric} -> !feature\r\n    feature_schedule {global_unlock_value numeric} -> !feature\r\n    feature_progress {contributed_value numeric} -> !feature\r\n\r\n    // NOTE: this syntax is not currently available\r\n    feature_unlocked : feature_progress.contributed_value >= feature_schedule.global_unlock_value\r\n  }\r\n\r\n  transactions {\r\n    transaction -> accounts.account\r\n    transaction_detail {amount numeric} -> transaction\r\n    transaction_account_feature -> accounts.account_feature -> transaction_detail\r\n  }\r\n}\r\n````\r\n\r\nFor the full grammar, please see [its definition](/src/grammar/RM.ohm.js).\r\n\r\n````\r\n @ - Indicates the attribute is part of the table's PRIMARY KEY\r\n ! - Indicates the attribute is part of a UNIQUE constraint\r\n ? - Indicates the attribute may be NULL\r\n-> - Indicates a foreign key attribute REFERENCES the primary key of another table\r\n````\r\n\r\n###Installation\r\n````\r\nnpm install -g relational_modeler\r\n````\r\n\r\n###Command-line Interface (CLI) Usage\r\n````\r\nrelational_modeler sample.model\r\n````\r\n\r\nThis will generate two files: 1) `sample.sql` and 2) `sample.import`.\r\n\r\n`sample.sql` will contain a script that will create a database and schema for the model on a PostgreSQL database (other database engines can be easily added, but are not currently supported).\r\n\r\n`sample.import` will contain a script that can be used to import data from character-separated-values (CSV) files. The characters used to delimit and quote values in the file may be passed as parameters.\r\n\r\nAll parameters:\r\n````\r\nrelational_modeler [model file] [import file delimiter character] [import file quote character] [database engine]\r\n````\r\n\r\n###Web Interface Usage\r\n\r\nThe web interface is available at: [https://blakelapierre.github.io/relational_modeler](https://blakelapierre.github.io/relational_modeler)\r\n\r\nThe web interface can also be accessed by making the `.dist/web_interface` directory available to a web server and then accessing the index.html file.\r\n\r\nModels can be typed or copy-pasted into the model text field and the corresponding SQL and import scripts may be copy-pasted out of the browser into any application you want.\r\n\r\n\r\n###API Usage\r\n\r\n````\r\nimport {api, GrammarError} from 'relational_modeler';\r\n\r\nconst modelText =\r\n`database_name{\r\n  schema_name {\r\n    table_name {\r\n      !primaryKey,\r\n      attribute\r\n    } -> foreign_table\r\n\r\n    foreign_table {\r\n      !primaryKey,\r\n      attribute? boolean\r\n    }\r\n  }\r\n}`;\r\n\r\ntry {\r\n  console.log(api(modelText, 'postgresql', '^', '~').schema.join('\\n'));\r\n}\r\ncatch (e) {\r\n  if (e instanceof GrammarError) {\r\n    console.log(e.match.message);\r\n  }\r\n  else console.log(e);\r\n}\r\n````","readmeFilename":"Readme.md"}