{"_id":"inheritance-js","_rev":"55-a03388f894ae6bef46a184f467a4ee3b","name":"inheritance-js","description":"Simple, lightweight extensions and helpers that make inheritance in JS a breeze, all with pure JavaScript, no extra libraries needed","dist-tags":{"latest":"0.4.12"},"versions":{"0.4.12":{"name":"inheritance-js","version":"0.4.12","description":"Simple, lightweight extensions and helpers that make inheritance in JS a breeze, all with pure JavaScript, no extra libraries needed","license":"CPOL-1.02","homepage":"https://github.com/bsara/inheritance.js#readme","repository":{"type":"git","url":"git+https://github.com/bsara/inheritance.js.git"},"keywords":["class","classes","inherit","inheritjs","inherit-js","inherit.js","inheritance","inheritancejs","inheritance-js","inheritance.js","object","objects","prototype"],"main":"dist/inheritance.js","directories":{"test":"test"},"scripts":{"build":"gulp build","dist":"gulp dist","docs":"gulp docs","clean":"gulp clean","lint":"gulp lint","test":"gulp test"},"files":["/dist/**/*.js","/docs/**/*","/LICENSE","/README.md"],"devDependencies":{"del":"latest","gulp":"latest","gulp-concat":"latest","gulp-header":"latest","gulp-jscs":"latest","gulp-jsdoc":"latest","gulp-jshint":"latest","gulp-rename":"latest","gulp-replace":"latest","gulp-uglify":"latest","gulp-util":"latest","gulp-wrap-umd":"github:bsara/gulp-wrap-umd","jshint":"latest","jshint-stylish":"latest","merge-stream":"latest","path":"latest","run-sequence":"latest"},"gitHead":"0ae89191dc1469f1848859e82f2a158bfb25b067","bugs":{"url":"https://github.com/bsara/inheritance.js/issues"},"_id":"inheritance-js@0.4.12","_shasum":"929a297479dd09b0a32884bba84382a570a9e3c3","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.1","_npmUser":{"name":"bsara","email":"bsara.dev@gmail.com"},"dist":{"shasum":"929a297479dd09b0a32884bba84382a570a9e3c3","tarball":"https://registry.npmjs.org/inheritance-js/-/inheritance-js-0.4.12.tgz","integrity":"sha512-FJOxZQGJ47uUsQ3yDIF2w5Mxlwry8ZuphnUjHvSf/NZ6GJJC58gcpWpr/dSBK43u18PeoMrB7qdlhEEwzht/Mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAks16UCsli50tNs/TnMjeS8boG6KognSIDGiR0iMlsuAiEA5y3jl05HBR/EvZlofFmOyjXD4ix6Tlod1X1wIoBp3BI="}]},"maintainers":[{"name":"bsara","email":"bsara.dev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/inheritance-js-0.4.12.tgz_1470097615451_0.8415518156252801"},"deprecated":"this package is no longer maintained, see npm package page for more details"}},"readme":"Inheritance.js [![Build Status](https://img.shields.io/travis/bsara/inheritance.js.svg)](https://travis-ci.org/bsara/inheritance.js?style=flat-square)\n=================================================\n\n[![CPOL v1.02 License](https://img.shields.io/badge/license-CPOL--1.02-blue.svg?style=flat-square)](https://github.com/bsara/inheritance.js/blob/master/LICENSE.md)\n\n[![NPM Package](https://img.shields.io/npm/v/inheritance-js.svg?style=flat-square)](https://www.npmjs.com/package/inheritance-js)&nbsp;\n[![Bower Package](https://img.shields.io/bower/v/inheritance-js.svg?style=flat-square)](http://bower.io/search/?q=inheritance-js)\n\n\n> **WARNING: This project has been deprecated** and **will be removed from NPM and Bower in about 6 months (Feb, 2017)**! This project started out as\n  an experiment/learning tool for me, but I ultimately found that the approach taken in the project is VERY inefficient. I'm truly very sorry for any\n  inconvenience this may cause. I recommend as a replacement that you use the native inheritance functionality of JavaScript, it's fast, and really\n  actually not that hard to pick up; or just use [ES6 classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes). Trying to\n  turn the prototypal inheritance into classical inheritance is really not worth it in JavaScript. It's better to embrace how the language works\n  naturally, once you do, you'll never regret it. I will remove the library from NPM and Bower in about 6 months.\n  **If anyone would like to take over the project, just let me know.**\n\n\nSimple, lightweight extensions and helpers that make inheritance in JS a breeze, all with pure JavaScript, no extra libraries needed.\n\nIncludes support for AMD, CommonJS, and global inclusion via an HTML script tag.\n\n> *Special Thanks to [YouMightNotNeedjQuery.com](http://youmightnotneedjquery.com). The functions `mix`, `mixDeep`, `mixPrototype`, and `mixPrototypeDeep`\nwere based largly off of their implementation of [\"Extend\"](http://youmightnotneedjquery.com/#extend) and\n[\"Deep Extend\"](http://youmightnotneedjquery.com/#deep_extend).*\n\n\n\n## Install\n\n- **NPM:** `$ npm install --save inheritance-js`\n- **Bower:** `$ bower install --save inheritance-js`\n- **CDN (minified):** `<script src=\"//npmcdn.com/inheritance-js@0.4.12/dist/inheritance.min.js\"></script>`\n- **CDN (not minified):** `<script src=\"//npmcdn.com/inheritance-js@0.4.12\"></script>`\n- [**Download**](https://github.com/bsara/inheritance.js/releases)\n\n\n\n## Features\n\n- Built with fully native, pure JavaScript! No extra libraries needed.\n- Make any object inheritable with one function call.\n- Make any object non-inheritable (\"sealed\") with one function call.\n- Easily create object definitions containing...\n    - mixins (deep)\n    - private properties\n    - static properties\n    - static constant properties\n    - private static properties\n    - [getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) (via `get` keyword)\n    - [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set) (via `set` keyword)\n- Object definition creation is made much more readable/maintainable.\n- Mix multiple objects into one. (Almost same as jQuery/underscore/lodash `extend`).\n- Optional extensions/inheritance for native JavaScript objects ([Full List of Native Object Extensions](https://github.com/bsara/inheritance.js/wiki/Native-JS-Object-Changes))\n- Support for...\n    - AMD\n    - CommonJS\n    - Global HTML script tag\n\n\n\n\n\n# Documentation\n\n[**Changelog**](https://github.com/bsara/inheritance.js/blob/master/CHANGELOG.md)\n\n\n---\n\n\n### Table of Contents\n\n- [Code Samples](#code-samples)\n- [Including the Library in your project](#including-the-library-in-your-project)\n    - [Include as AMD Module](#include-as-amd-module)\n    - [Include as CommonJS Module](#include-as-commonjs-module)\n    - [Include via HTML Script Tag](#include-via-html-script-tag)\n- [Functions](#functions)\n    - [ObjectDefinition.create](#objectdefinitioncreateobjdef)\n    - [ObjectDefinition.createSealed](#objectdefinitioncreatesealedobjdef)\n    - [inheritance](#inheritanceparent-objdefprops)\n    - [makeInheritable](#makeinheritableobj-overwrite-ignoreoverwriteerror)\n    - [seal](#sealobj-overwrite-ignoreoverwriteerror)\n    - [mix](#mixobj-mixins)\n    - [mixDeep](#mixdeepobj-mixins)\n    - [mixPrototype](#mixprototypeobj-mixins)\n    - [mixPrototypeDeep](#mixprototypedeepobj-mixins)\n- [Functions Added to `Object`](#functions-added-to-object) _(These additions are optional)_\n    - [Object.extend](#objectextendobjdefprops)\n    - [Object.prototype.mix](#objectprototypemix)\n    - [Object.prototype.mixDeep](#objectprototypemixdeep)\n\n\n---\n\n\n## Code Samples\n\n- Create New Object Definition (I.E. \"Class\") [[JSbin][cs-create-obj-def-jsbin]] [[JSFiddle][cs-create-obj-def-jsfiddle]]\n\n\n---\n\n\n## Including the Library in your project\n\n> **Note:** If you don't want any native objects to be modified by this library, just use `inheritance.noexts.js` rather than `inheritance.js`.\n\n#### Include as AMD Module\n\n```javascript\ndefine([ 'inheritance' ], function(I) {\n  I.mix(...);\n\n  var MyObj = I.ObjectDefinition.create(...);P\n\n  ...\n});\n```\n\n\n#### Include as CommonJS Module\n\n```javascript\nvar I = require('inheritance');\n\nI.mix(...);\n\nvar MyObj = I.ObjectDefinition.create(...);\n\n...\n```\n\n\n#### Include via HTML Script Tag\n\n```html\n<script type=\"text/javascript\" src=\"inheritance.min.js\" />\n<script type=\"text/javascript\">\n  I.mix(...);\n\n  // Notice that `ObjectDefinition` belongs to the `window` object, not the `I` namespace.\n  var MyObj = ObjectDefinition.create(...);\n\n  ...\n</script>\n```\n\n\n\n\n## Functions\n\n### [ObjectDefinition.create(objDef)](https://github.com/bsara/inheritance.js/blob/master/src/object-definition.js#L8)\n\nCreates a new object (I.E. \"class\") that can be inherited.\n\n> **NOTE:** The new object inherits the native JavaScript `Object`.\n\n#### Parameters\n\n| Name      | Type   | Description                 |\n|-----------|--------|-----------------------------|\n| `objDef`  | Object | **TODO**                    |\n\n#### Returns\n\n- `Object` - The newly created, inheritable, object that inherits `Object`.\n\n#### Usage\n\n- [JSbin][cs-create-obj-def-jsbin]\n- [JSFiddle][cs-create-obj-def-jsfiddle]\n\n\n---\n\n\n### [ObjectDefinition.createSealed(objDef)](https://github.com/bsara/inheritance.js/blob/master/src/object-definition.js#L21)\n\nCreates a new object (I.E. \"class\") that CANNOT be inherited.\n\n> **NOTE:** The new object inherits the native JavaScript `Object`.\n\n#### Parameters\n\n| Name      | Type   | Description                 |\n|-----------|--------|-----------------------------|\n| `objDef`  | Object | **TODO**                    |\n\n#### Returns\n\n- `Object` - The newly created, non-inheritable, object that inherits `Object`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [inheritance(parent, objDefProps)](https://github.com/bsara/inheritance.js/blob/master/src/inherit/inheritance.js)\n\nCreates a new object definition based upon the given `objDefProps` that inherits the\ngiven `parent`.\n\n#### Parameters\n\n| Name      | Type   | Description                 |\n|-----------|--------|-----------------------------|\n| parent    | Object | The object to be inherited. |\n| *objDefProps | Object | An object containing all properties to be used in creating the new object definition that will inherit the given `parent` object. If this parameter is`undefined` or `null`, then a new child object definition is created. **TODO: Add reference to the objDefProps spec** |\n\n#### Returns\n\n- `Object` - An object created from the given `objDefProps` that inherits `parent`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [makeInheritable(obj, overwrite, ignoreOverwriteError)](https://github.com/bsara/inheritance.js/blob/master/src/inherit/make-inheritable.js)\n\nMakes an object inheritable by adding a function called `extend` as a \"static\" property\nof the object. _(I.E. Calling this function passing `MyObject` as a parameter, creates\n`MyObject.extend`)_\n\n#### Parameters\n\n| Name                  | Type    | Description                     |\n|-----------------------|---------|---------------------------------|\n| obj                   | Object  | The object to make inheritable. |\n| *overwrite            | Boolean | If `true`, then an existing `extend` property will be overwritten regardless of it's value. |\n| *ignoreOverwriteError | Boolean | If `true`, then no error will be thrown if `obj.extend` already exists and `overwrite` is not `true`. |\n\n#### Returns\n\n- `Object` - The modified `obj` given.\n\n#### Errors thrown\n\n- `TypeError` - If `obj` is `undefined` or `null`.\n- `TypeError` - If `obj.extend` already exists and `overwrite` is NOT equal `true`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [seal(obj, overwrite, ignoreOverwriteError)](https://github.com/bsara/inheritance.js/blob/master/src/inherit/seal.js)\n\nMakes an object sealed by adding a function called `extend` as a \"static\" property\nof the object that throws an error if it is ever called. Also adds a readonly\n\"static\" property named `sealed` to the object definition that is set to `true`,\nthus allowing for one to quickly determine whether or not an object's definition\nis sealed without catching the error thrown by it's `extend` function.\n_(I.E. Calling this function passing `MyObject` as a parameter, creates\n`MyObject.extend` and `MyObject.sealed`, where `MyObject.sealed` will always be\n`true`)_\n\n#### Parameters\n\n| Name                  | Type    | Description         |\n|-----------------------|---------|---------------------|\n| obj                   | Object  | The object to seal. |\n| *overwrite            | Boolean | If `true`, then an existing `extend` property will be overwritten regardless of it's value. |\n| *ignoreOverwriteError | Boolean | If `true`, then no error will be thrown if `obj.extend` already exists and `overwrite` is not `true`. |\n\n#### Returns\n\n- `Object` - The modified `obj` given.\n\n#### Errors thrown\n\n- `TypeError` - If `obj` is `undefined` or `null`.\n- `TypeError` - If `obj.extend` already exists and `overwrite` is NOT equal `true`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [mix(obj, mixins)](https://github.com/bsara/inheritance.js/blob/master/src/mixin/mix.js)\n\n**TODO**\n\n#### Parameters\n\n| Name                  | Type          | Description                     |\n|-----------------------|---------------|---------------------------------|\n| obj                   | Object        | The object to mix into.<br/>**NOTE:** `undefined` and `null` are both VALID values for this parameter. If `obj` is `undefined` or `null`, then a new object will be created from the `mixins` given. |\n| mixins                | Array<Object> | An array of objects whose properties should be mixed into the given `obj`.<br/>**NOTE:** The order of objects in this array does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The mixed version of `obj`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [mixDeep(obj, mixins)](https://github.com/bsara/inheritance.js/blob/master/src/mixin/mix-deep.js)\n\n**TODO**\n\n#### Parameters\n\n| Name                  | Type          | Description                     |\n|-----------------------|---------------|---------------------------------|\n| obj                   | Object        | The object to deep mix into.<br/>**NOTE:** `undefined` and `null` are both VALID values for this parameter. If `obj` is `undefined` or `null`, then a new object will be created from the `mixins` given. |\n| mixins                | Array<Object> | An array of objects whose properties should be deep mixed into the given `obj`.<br/>**NOTE:** The order of objects in this array does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The deep mixed version of `obj`.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [mixPrototype(obj, mixins)](https://github.com/bsara/inheritance.js/blob/master/src/mixin/mix-prototype.js)\n\n**TODO**\n\n#### Parameters\n\n| Name                  | Type          | Description                     |\n|-----------------------|---------------|---------------------------------|\n| obj                   | Object        | The object containing the prototype to mix into.<br/>**NOTE:** `undefined` and `null` are both VALID values for this parameter. If `obj` is `undefined` or `null`, then a new object will be created from the `mixins` given. |\n| mixins                | Array<Object> | An array of objects whose properties should be mixed into the prototype of the given `obj`.<br/>**NOTE:** The order of objects in this array does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The mixed version of `obj`.\n\n#### Errors thrown\n\n- `TypeError` - If `obj.prototype` does not exist.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n### [mixPrototypeDeep(obj, mixins)](https://github.com/bsara/inheritance.js/blob/master/src/mixin/mix-prototype-deep.js)\n\n**TODO**\n\n#### Parameters\n\n| Name                  | Type          | Description                     |\n|-----------------------|---------------|---------------------------------|\n| obj                   | Object        | The object containing the prototype to deep mix into.<br/>**NOTE:** `undefined` and `null` are both VALID values for this parameter. If `obj` is `undefined` or `null`, then a new object will be created from the `mixins` given. |\n| mixins                | Array<Object> | An array of objects whose properties should be deep mixed into the prototype of the given `obj`.<br/>**NOTE:** The order of objects in this array does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The deep mixed version of `obj`.\n\n#### Errors thrown\n\n- `TypeError` - If `obj.prototype` does not exist.\n\n#### Usage\n\n**TODO**\n\n\n---\n\n\n## Functions Added to `Object`\n\n### [Object.extend(objDefProps)](https://github.com/bsara/inheritance.js/blob/master/src/inherit/make-inheritable.js#L46)\n\nCreates a new object definition based upon the given `objDefProps` and causes that new object definition to inherit this object.\n\n> **NOTE:** For a list of all native JavaScript objects that have this function added to them, see [the wiki page](https://github.com/bsara/inheritance.js/wiki/Native-JS-Object-Changes).\nAll of the other native JavaScript objects with this function work exactly as described here (I.E. this piece of documentation is not specific to `Object`).\n\n#### Parameters\n\n| Name      | Type   | Description                 |\n|-----------|--------|-----------------------------|\n| objDefProps  | Object | An object containing all properties to be used in creating the new object definition that will inherit the `Object`. If this parameter is `undefined` or `null`, then a new child object definition is created. **TODO: Add reference to the objDefProps spec**  |\n\n#### Returns\n\n- `Object` - An object created from the given `objDefProps` that inherits `Object`.\n\n#### Usage\n\n```javascript\nvar ChildObject = Object.extend({\n  // Child Definition Properties\n});\n```\n\n\n---\n\n\n### [Object.prototype.mix(...)](https://github.com/bsara/inheritance.js/blob/master/src/extensions.js#L4)\n\n**TODO**\n\n#### Parameters\n\n| Name      | Type      | Description                 |\n|-----------|-----------|-----------------------------|\n| arguments | Object... | Mixin objects whose properties should be mixed into the `Object`.<br/>**NOTE:** The order of objects passed as arguments does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The `Object`, mixed with the given mixin objects.\n\n#### Usage\n\n```javascript\nvar obj = new Object();\n\nobj.value0 = 42;\nobj.value1 = \"Fish fingers and custard\";\nobj.value2 = {\n  value0: 20,\n  value1: 21\n}\nobj.func0 = function() {\n  console.log('func0');\n};\nobj.func1 = function() {\n  console.log('func1');\n};\n\nvar mixin0 = {\n  mixin0Var0: 0,\n  mixin0Var1: 0.1,\n  mixin0Func0: function() {\n    console.log('mixin0Func0');\n  },\n  mixin0Func1: function() {\n    console.log('mixin0Func1');\n  },\n\n  value2: {\n    value0: \"Blah\"\n  }\n};\n\nvar mixin1 = {\n  mixin1Var0: 1,\n  mixin1Var1: 1.1,\n\n  value0: 24,\n  func0: function() {\n    console.log('func0 overridden by mixin1');\n  },\n\n  mixin0Func: function() {\n    console.log('mixin0Func overridden by mixin1');\n  }\n};\n\nvar mixin2 = {\n  mixin2Var: 2,\n  mixin2Func: function() {\n    console.log('mixin2Func');\n  },\n\n  value0: 4400,\n  func0: function() {\n    console.log('func0 overridden by mixin2');\n  },\n\n  mixin0Var1: 2.1,\n  mixin0Func0: function() {\n    console.log('mixin0Func0 overridden by mixin2');\n  },\n\n  mixin1Var0: 2.2\n};\n\n// At this point, `obj` can be represented as follows:\n//    {\n//      value0: 42,\n//      value1: \"Fish fingers and custard\"\n//      func0: function() {...},\n//      func1: function() {...}\n//    }\n\nvar newObj = obj.mix(mixin0, mixin1, mixin2);\n\nconsole.log('newObj.value0 = ' + newObj.value0); // newObj.value0 = 4400\nconsole.log('newObj.value1 = ' + newObj.value1); // newObj.value1 = \"Fish fingers and custard\"\nconsole.log('newObj.value2.value0 = ' + newObj.value2.value0) // newObj.value2.value0 = \"Blah\"\nconsole.log('newObj.value2.value1 = ' + newObj.value2.value1) // newObj.value2.value1 = undefined\n\nconsole.log('newObj.mixin0Var0 = ' + newObj.mixin0Var0); // newObj.mixin0Var0 = 0\nconsole.log('newObj.mixin0Var1 = ' + newObj.mixin0Var1); // newObj.mixin0Var1 = 2.1\n\nconsole.log('newObj.mixin1Var0 = ' + newObj.mixin1Var0); // newObj.mixin1Var0 = 1\nconsole.log('newObj.mixin1Var1 = ' + newObj.mixin1Var1); // newObj.mixin1Var1 = 2.1\n\nconsole.log('newObj.mixin2Var = ' + newObj.mixin2Var); // newObj.mixin2Var = 2\n\nnewObj.func0() // Prints \"func0 overridden by mixin2\"\nnewObj.func1() // Prints \"func1\"\n\nnewObj.mixin0Func0() // Prints \"mixin0Func0 overridden by mixin2\"\nnewObj.mixin0Func1() // Prints \"mixin0Func1 overridden by mixin1\"\n\nnewObj.mixin2Func() // Prints \"mixin2Func\"\n```\n\n\n---\n\n\n### [Object.prototype.mixDeep(...)](https://github.com/bsara/inheritance.js/blob/master/src/extensions.js#L25)\n\n**TODO**\n\n#### Parameters\n\n| Name      | Type      | Description                 |\n|-----------|-----------|-----------------------------|\n| arguments | Object... | Mixin objects whose properties should be deep mixed into the `Object`.<br/>**NOTE:** The order of objects in this array does matter! If there are properties present in multiple mixin objects, then the mixin with the largest index value overwrite any values set by the lower index valued mixin objects. |\n\n#### Returns\n\n- `Object` - The `Object`, deep mixed with the given mixin objects.\n\n#### Usage\n\n**TODO**\n\n\n\n\n# Contributing\n\nSee [contribution documentation page](https://github.com/bsara/inheritance.js/blob/master/CONTRIBUTING.md) for details.\n\n\n\n\n[cs-create-obj-def-jsbin]: http://jsbin.com/wurure/edit?js,console \"Create Object Definition Code Sample (JSBin)\"\n[cs-create-obj-def-jsfiddle]: https://jsfiddle.net/bsara/ekwajv83/ \"Create Object Definition Code Sample (JSFiddle)\"\n","maintainers":[{"name":"bsara","email":"bsara.dev@gmail.com"}],"time":{"modified":"2022-06-19T01:16:04.858Z","created":"2015-06-08T22:16:13.899Z","0.0.1":"2015-06-08T22:16:13.899Z","0.0.2":"2015-06-08T23:22:40.747Z","0.1.0":"2015-06-16T22:45:51.153Z","0.1.1":"2015-06-16T22:54:21.652Z","0.1.2":"2015-06-17T23:00:14.437Z","0.1.3":"2015-07-09T19:21:51.656Z","0.2.0":"2015-07-17T00:56:39.039Z","0.2.3":"2015-08-11T23:41:06.808Z","0.2.4":"2015-08-12T00:05:27.062Z","0.3.1":"2015-08-13T00:59:40.669Z","0.3.0":"2015-08-13T01:00:21.663Z","0.3.2":"2015-08-13T01:40:59.490Z","0.4.0":"2015-08-26T00:32:13.958Z","0.4.1":"2015-08-26T18:33:25.628Z","0.4.2":"2015-08-27T01:00:06.743Z","0.4.4":"2015-09-09T19:10:23.466Z","0.4.5":"2015-10-12T18:39:45.052Z","0.4.6":"2015-10-22T17:54:43.424Z","0.4.7":"2015-10-22T18:01:59.165Z","0.4.8":"2015-10-30T18:10:21.981Z","0.4.9":"2016-02-18T19:04:13.848Z","0.4.10":"2016-03-29T18:13:13.904Z","0.4.11":"2016-04-27T21:46:22.513Z","0.4.12":"2016-08-02T00:26:56.383Z"},"homepage":"https://github.com/bsara/inheritance.js#readme","keywords":["class","classes","inherit","inheritjs","inherit-js","inherit.js","inheritance","inheritancejs","inheritance-js","inheritance.js","object","objects","prototype"],"repository":{"type":"git","url":"git+https://github.com/bsara/inheritance.js.git"},"bugs":{"url":"https://github.com/bsara/inheritance.js/issues"},"license":"CPOL-1.02","readmeFilename":"README.md","users":{}}