{"_id":"backbone.iobind","_rev":"22-a586cde3feb522bc38c3870d8aa25eae","name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","dist-tags":{"latest":"0.4.9"},"versions":{"0.3.0":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.3.0","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":"~v0.4.12"},"dependencies":{},"devDependencies":{"folio":"0.1.x","seed":"0.0.10","colors":"0.5.x","express":"2.5.x","socket.io":"0.8.x","jade":"0.16.x","stylus":"0.19.0","nib":"0.2.x","fez":"0.0.x","jq":"1.6.x","backbone":"0.5.x","underscore":"1.2.x"},"_npmUser":{"name":"jakeluer","email":"jake.luer@incatern.com"},"_id":"backbone.iobind@0.3.0","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"bf620394a00aefb06c0fe686b3adfbfd1c1cc5c8","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.3.0.tgz","integrity":"sha512-uNo9JRnvwyKcelMEF/nfuQQcEDYeimsrDGkCxr8jIcdoZxGg38H4pwqWaISMolJ3uwtxewjF65dP1q/GZ7RRvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBL41l4gBf3NitJZCA+JzigxCdk2IrDDoZ4L8Dm12lhmAiEA8cOMW6mpw4u+rKSJG4JhbtLSQ3j3hrBAAx64e0lwzlQ="}]},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.0":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.0","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"folio":"0.1.x","seed":"0.0.10","colors":"0.5.x","express":"2.5.x","socket.io":"0.8.x","jade":"0.16.x","stylus":"0.19.0","nib":"0.2.x","fez":"0.0.x","jq":"1.6.x","backbone":"0.5.x","underscore":"1.2.x"},"_npmUser":{"name":"jakeluer","email":"jake.luer@incatern.com"},"_id":"backbone.iobind@0.4.0","_engineSupported":true,"_npmVersion":"1.1.0-alpha-2","_nodeVersion":"v0.6.3","_defaultsLoaded":true,"dist":{"shasum":"fd1553ff41a0988de9d1f2125a6d52a334ec23d5","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.0.tgz","integrity":"sha512-3vogME4IgoYAKM2McjP7LjHu8m8vczfBifbscZ4hJqJJjgmQwnP3pwqScGeyPVjl8t1sbwxvNCz2bY0nlv18fQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDL1mAPYqJ3m4tlqjd/cUyVpRSfPKBUziayeOo++Co8eAiAdRyUPmRQ+3qYpqm81WE9aMs7DW0ECxdKmEn9Qhq38NA=="}]},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.1":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.1","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.1.x","seed":"0.0.10","colors":"0.5.x","express":"2.5.x","socket.io":"0.8.x","jade":"0.16.x","stylus":"0.19.0","nib":"0.2.x","fez":"0.0.x","jq":"1.6.x","backbone":"0.5.x","underscore":"1.2.x"},"_npmUser":{"name":"jakeluer","email":"jake.luer@incatern.com"},"_id":"backbone.iobind@0.4.1","_engineSupported":true,"_npmVersion":"1.1.0-alpha-6","_nodeVersion":"v0.6.5","_defaultsLoaded":true,"dist":{"shasum":"725b10748e131fc16cc6aac0a16180819185a958","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.1.tgz","integrity":"sha512-6Fd6OywWpCNq6TAntPauiJGOQE1SCqCm7G0NSYCC9h0nZUwVEkVyR3uznAuVmA8XevUaCwa31cbBmyDIRatfGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDlVHy08AiOa3IuMZzVP3/1alhyQKofXQR8e0P3dL6HtAiAhSNSpmm/NPJ9fdCAzD5Z5YxIkFvJZLMaiH1hlNMd3Gw=="}]},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.2":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.2","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.1.x","seed":"0.1.x","colors":"0.6.x","express":"2.5.x","socket.io":"0.8.x","jade":"0.19.x","stylus":"0.20.0","nib":"0.3.x","fez":"0.0.x","backbone":"0.5.x","underscore":"1.2.x"},"_npmUser":{"name":"jakeluer","email":"jake.luer@incatern.com"},"_id":"backbone.iobind@0.4.2","_engineSupported":true,"_npmVersion":"1.1.0-beta-4","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"b99124310c8a970edaf42c46e1d9c46dd047b0b3","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.2.tgz","integrity":"sha512-oFZPA4ZdQ/RC7lIbcjqyx/h/p64Ar8N6JNIaoJm1zjPxzj60AFS+GCoNZiEOYERMgA3LhQVOY/BkCYVzGvFxZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGzFNCBQtsWMzPyLMFHtQqEiRUZJkN/0sTXHwk09fB5AIhAKKwimBj47bCoKfVpcwMOiINWRIaTcmCKstqpZN8Dn5F"}]},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.3":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.3","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.2.x","seed":"0.1.x","colors":"0.6.x","express":"2.5.x","socket.io":"0.8.x","jade":"0.20.x","stylus":"0.22.x","nib":"0.3.x","fez":"0.0.x","backbone":"0.5.x","underscore":"1.2.x"},"_npmUser":{"name":"jakeluer","email":"jake.luer@incatern.com"},"_id":"backbone.iobind@0.4.3","_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.8","_defaultsLoaded":true,"dist":{"shasum":"f935555fd5ae0fb4e3643871e4ca00b74caf570c","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.3.tgz","integrity":"sha512-mTDfjp8ha3AM3lz+2G5WIzxeshbJN1omzvYWlstBaKRlayAjiP6d05KQKnFfsMoyQSOqFLdLXhz22nNVTRqhpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICBkLaJaP17MoiLkt6qhaDCAdIWG8qkW+qrC4BYRo6uoAiEA5YmDQjCAs7YKEc8YuzIYN18N1F/ld2YZniOVc/zBrRA="}]},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.6":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.6","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.2.x","seed":"0.1.x","colors":"0.6.x","express":"2.5.x","socket.io":"0.9.x","jade":"0.20.x","stylus":"0.22.x","nib":"0.3.x","fez":"0.0.x","backbone":"1.0.0","underscore":"1.4.x","jquery":"*","mocha":"1.8.2"},"_id":"backbone.iobind@0.4.6","dist":{"shasum":"a8e36f16cfc1074390019bbc2eb32f904bfbfeb4","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.6.tgz","integrity":"sha512-WD+44NoUBQLCWCsbJGblHOCfK92JJPmuXgSGrs8FiscITFRCOJZmM4r6OlFnOKP1P3D7ts24vGFH3zRc6w1YBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCylwvlX26Lj4eI4TmfSTqMrCJvzeZ+ukQ0qa4wWsgWUQIhAOtBTaw1FYGWuoKHjcuxFGvfjcRBqTMD3fQkgsgSKVrl"}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"jakeluer","email":"jake@alogicalparadox.com"},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"}]},"0.4.8":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.8","homepage":"http://logicalparadox.github.com/backbone.iobind","repository":{"type":"git","url":"git://github.com/logicalparadox/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.2.x","colors":"0.6.x","socket.io":"1.1.x","socket.io-client":"1.1.x","backbone":"1.1.x","underscore":"1.7.x","jquery":"1.8.3","mocha":"1.21.4"},"gitHead":"5e06d99d3e79b02bd8a892e3c6ba969e47f49736","bugs":{"url":"https://github.com/logicalparadox/backbone.iobind/issues"},"_id":"backbone.iobind@0.4.8","scripts":{},"_shasum":"3f322167d58c1762444d87df3e9e9901b4538840","_from":".","_npmVersion":"2.1.2","_nodeVersion":"0.10.32","_npmUser":{"name":"mahnunchik","email":"mahnunchik@gmail.com"},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"},{"name":"mahnunchik","email":"mahnunchik@gmail.com"}],"dist":{"shasum":"3f322167d58c1762444d87df3e9e9901b4538840","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.8.tgz","integrity":"sha512-dkuq1p+vlN03NoL0Pv56BODD5GZlosyg1LDBiHFDQ2c73lYw2HiHkJ/obQENVJX0XGjJy0MMU0nU8BRrzFuTcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfd/bapvopw2ev42n7qvg9kfKGojlzldIHG3n+yTFEwAiEA5e4xn0PN2uzTAH3v5+Y2h1MaCLVAi198hleOSpuVFPU="}]}},"0.4.9":{"author":{"name":"Jake Luer","email":"@jakeluer"},"name":"backbone.iobind","description":"Bind socket.io events to backbone models & collections.","version":"0.4.9","homepage":"https://noveogroup.github.io/backbone.iobind","repository":{"type":"git","url":"git://github.com/noveogroup/backbone.iobind.git"},"engines":{"node":">= 0.4.0"},"dependencies":{},"devDependencies":{"codex":"0.0.x","folio":"0.2.x","colors":"0.6.x","socket.io":"1.1.x","socket.io-client":"1.1.x","backbone":"1.1.x","underscore":"1.7.x","jquery":"1.8.3","mocha":"1.21.4"},"gitHead":"667a6bc71e2af4fd8127bc151e67633dcfba8a5e","bugs":{"url":"https://github.com/noveogroup/backbone.iobind/issues"},"_id":"backbone.iobind@0.4.9","scripts":{},"_shasum":"4a24ad182b6d5250bd0df20256a9618a3b4090c5","_from":".","_npmVersion":"2.1.8","_nodeVersion":"0.10.33","_npmUser":{"name":"noveogroup","email":"Eugeny.Vlasenko@noveogroup.com"},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"},{"name":"mahnunchik","email":"mahnunchik@gmail.com"},{"name":"noveogroup","email":"npm@noveogroup.com"}],"dist":{"shasum":"4a24ad182b6d5250bd0df20256a9618a3b4090c5","tarball":"https://registry.npmjs.org/backbone.iobind/-/backbone.iobind-0.4.9.tgz","integrity":"sha512-zjS8RGdwTX/Z65WOeX+5GIGw8U0Wqdscf9EqfWUr+TfbQiAuMOQ2BpvhhvK/+tmixoJZGuoBmOp7V6KfYSlRYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlp32BAYq5liDNctsVgVdozZttMlemyh/LhgiAZ3wEWgIhAK6Cq6sNh3/pVlYiC0AHrPFb9M1iZMTys3669PZFciH3"}]}}},"maintainers":[{"name":"jakeluer","email":"jake.luer@incatern.com"},{"name":"mahnunchik","email":"mahnunchik@gmail.com"},{"name":"noveogroup","email":"npm@noveogroup.com"}],"time":{"modified":"2022-06-13T04:10:53.061Z","created":"2011-11-02T17:44:15.125Z","0.3.0":"2011-11-02T17:44:15.754Z","0.4.0":"2011-11-28T21:18:55.074Z","0.4.1":"2011-12-09T04:28:33.209Z","0.4.2":"2011-12-31T18:39:57.398Z","0.4.3":"2012-01-26T04:15:36.503Z","0.4.6":"2013-04-05T05:19:49.064Z","0.4.8":"2014-10-05T09:21:00.463Z","0.4.9":"2014-12-10T19:37:05.123Z"},"author":{"name":"Jake Luer","email":"@jakeluer"},"repository":{"type":"git","url":"git://github.com/noveogroup/backbone.iobind.git"},"users":{"mahnunchik":true},"readme":"# Backbone.ioBind\n\nBackbone.ioBind allows you to bind socket.io events to backbone model & collection events.\nAlso includes `backbone.iosync.js`, a drop in replacement for `Backbone.sync` that uses socket.io.\n\nYour best bet for starting is to check out the [API Documentation](https://noveogroup.github.io/backbone.iobind/).\n\n#### Quick Links\n\n* [Example App Installation](https://noveogroup.github.io/backbone.iobind/index.html#exampleapp)\n* [Google Group](https://groups.google.com/group/backboneiobind)\n* [Changelog](https://github.com/logicalparadox/backbone.iobind/blob/master/History.md)\n\n#### Dependencies\n\n* [Socket.io](http://socket.io/) 0.7.x || 0.8.x || 0.9.x || 1.x\n* [Backbone](http://documentcloud.github.com/backbone/) 1.x\n\n#### Compatibility\n\nUse Backbone.ioBind < 0.4.6 for compatibility with version Backbone less then 1.0.0\n\n### Usage\n\nDownload and include in your projects.\n\n```html\n<script src=\"/js/backbone.iosync.js\"></script>\n<script src=\"/js/backbone.iobind.js\"></script>\n```\n\nOr use the minimized versions.\n\n```html\n<script src=\"/js/backbone.iosync.min.js\"></script>\n<script src=\"/js/backbone.iobind.min.js\"></script>\n```\n\n### Where to Get Help\n\nPlease post issues to [GitHub Issues](https://github.com/logicalparadox/backbone.iobind/issues).\nCommunity forum is available at the [Google Group](https://groups.google.com/group/backboneiobind).\n\n## Using the Backbone.sync Replacement for Socket.io\n\nThe Backbone.sync replacement, `backbone.iosync.js`, is a drop-in replacement for Backbone.sync that\nwill make Backbone use socket.io for all normal CRUD operations. By this, anytime you `save` a model,\n`fetch` a collection, `remove` a model, or other database operation, socket.io will be used as the\ntransport.\n\n### Namespaces / Urls\n\nBackbone has a dedicated attribute, `urlRoot` for models, and `url` for collections, that is used\nby the default sync method to direct AJAX request. ioSync uses this same attribute to create a\nnamespace tag for that model.\n\n*For Example:* If your collection url is 'posts' or '/posts', the events to listen for server-side will be:\n\n* `posts:create`\n* `posts:read`\n* `posts:update`\n* `posts:delete`\n\nAs with the default sync method, for a given model, ioSync will default to the `url` of the collection\nthat model is a part of, else it will use the models `urlRoot`.\n\nIf your url has a depth of more than one, only the first will be used. Example: `/posts/comments` will still only have a namespace of `posts`.*\n\n### RPC / Callbacks\n\nThis replacement assumes that you are using socket.io's RPC (callback) formula for these events.\nExamine this psuedo-code:\n\n```js\nsocket.on('posts:read', function (data, callback) {\n  db.query({_id: data.id}, function (err, model) {\n    if (err) {\n      callback(err);\n    } else {\n      // ... some data scrubbing\n      callback(null, model);\n    }\n  });\n});\n```\n\nThe callback accepts two parameters: `error` and `model`. If no error has occurred, send `null` for `error`.\n\nThe `model` should be a JSON representation of the client-side model's attributes.\n\n## Using Backbone.ioBind for Custom Events\n\nThe primary function for Backbone.ioBind is to make it easy to create client-side listeners\nfor server-side socket.io events. The most likely use case for this is to broadcast changes\nmade by one client to all other clients watching a particular data object.\n\nThe example app demonstrates a very basic usage scenario. If you would like to see specific code\nexamples, please check out the\n[wiki page on using the example app](https://noveogroup.github.io/backbone.iobind/index.html#exampleapp).\n\n### ioBind\n\nThe ioBind function is available for both Models and Collections, and behaves almost identically in both scenarios\n\n```js\n// Example Model.extend\nurlRoot: 'todo',\ninitialize: function () {\n  _.bindAll(this, 'serverChange', 'serverDelete', 'modelCleanup');\n  this.ioBind('update', window.socket, this.serverChange, this);\n  this.ioBind('delete', window.socket, this.serverDelete, this);\n}\n\n// Example Collection.exend\nurl: 'todos',\ninitialize: function () {\n  _.bindAll(this, 'serverCreate', 'collectionCleanup');\n  this.ioBind('create', window.socket, this.serverCreate, this);\n}\n```\n\nThe primary difference between `ioBind` on Models and Collection is the event string that is listened for.\nOn models, the event string includes the Model `id`, whereas on collection it is simply the collection namespace.\n\nThe above example will respond to the following socket.io events.\n\n```js\n// Model events\nsocket.emit('todo/' + todo_obj.id + ':update', todo_obj);\nsocket.emit('todo/' + todo_obj.id + ':delete', todo_obj);\n\n// Collection events\nsocket.emit('todos:create', todo_obj);\n```\n\n### Usage Guidelines\n\n*Model binding without ID:* Do NOT bind to Models that do NOT have an `id` assigned. This will cause for extra listeners\nand cause potentially large memory leak problems. See the example app for one possible workaround.\n\n*Namespace construction:* When constructing the namespace, as with the the ioSync method, for a given model ioBind\nwill default to the `url` of the collection that model is a part of, else it will use the models `urlRoot`.\n\n*Reserved events:* Do NOT bind to reserved backbone events, such as `change`, `remove`, and `add`. Proxy these\nevents using different event tags such as `update`, `delete`, and `create`.\n\n## Building\n\nClone this repo:\n\n`$ git clone https://github.com/logicalparadox/backbone.iobind`\n\nInstall development/build dependancies (Ie: [folio](https://github.com/logicalparadox/folio)).:\n\n`$ npm install`\n\nRun make\n\n`$ make`\n\n#### Example Tasks Application\n\nThere is an example application demonstrating the basics of using the\n`ioSync` and `ioBind` components. It is a tasks application that will keep itself syncronized across all open\nbrowser instances. The foundation is an [Express](https://github.com/visionmedia/express)\nserver using [Seed](https://github.com/logicalparadox/seed) as an in-memory data store.\n\nThe app is found in the `example` folder.\nView the [Documentation Article](https://noveogroup.github.io/backbone.iobind/index.html#exampleapp)\non the example app for instructions on how to get everything set up.\n\nIn short, run `node example/app.js` from the root directory.\n\n## Other Frameworks\n\n- [Backbone.realtimeBind](https://github.com/andreisebastianc/Backbone.js-Cometd-RealtimeBind) - ioBind for CometD by [@andreisebastianc](https://github.com/andreisebastianc/).\n\n## Protip\n\nWorks great with the awesome [backbone.modelbinding](https://github.com/derickbailey/backbone.modelbinding).\n\n## Contributors\n\nInterested in contributing? Fork to get started. Contact [@mahnunchik](http://github.com/mahnunchik) if you are interested in being regular contributor.\n\n* Jake Luer [[Github: @logicalparadox](http://github.com/logicalparadox)] [[Twitter: @jakeluer](http://twitter.com/jakeluer)] [[Website](http://alogicalparadox.com)]\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2011 Jake Luer <jake@alogicalparadox.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n","readmeFilename":"README.md","homepage":"https://noveogroup.github.io/backbone.iobind","bugs":{"url":"https://github.com/noveogroup/backbone.iobind/issues"}}