{"action":"created","comment":{"url":"https://api.github.com/repos/Roadmunk/JS/pulls/comments/198276458","pull_request_review_id":132176767,"id":198276458,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5ODI3NjQ1OA==","diff_hunk":"@@ -1,1162 +1,1260 @@\n-if (typeof define !== 'function')  var define = require('amdefine')(module)\n+if (typeof define !== 'function')  {\n+\tvar define = require('amdefine')(module); // eslint-disable-line no-var\n+}\n \n define(function(require, exports, module) {\n \n-var JS = module.exports;\n-\n-var constructionStack     = [];\t// the list of objects currently being constructed\n-var originalPropertiesMap = new WeakMap();\t// keeps track of the original properties for classes as defined (before they are modified)\n-\n-// Polyfill\n-// SHOULDDO: get rid of this once .setPrototypeOf is widely supported\n-Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {\n-\tobj.__proto__ = proto;\n-\treturn obj;\n-};\n-\n-/**\n- * Creates a javascript class.\n- *\n- * For example:\n- * JS.class('BaseClass', {\n- *    static : {\n- *       fields : {\n- * \t        static1 : 'hello world'\n- *       },\n- *       methods : {\n- *\n- *       }\n- *    },\n- *\n- *    constructor : function() { },\n- *\n- *    fields : {\n- *       instanceField : 1,\n- *       instanceField : 2\n- *    },\n- *\n- *    methods : {\n- *      run : function(arg1) { },\n- *      run2 : { get : function() { } }\n- *    }\n- * });\n- *\n- * JS.class('Subclass', {\n- * \t  inherits : BaseClass,\n- *    mixin    : [ Mixin1, Mixin2 ]\n- * });\n- */\n-JS.class = function(className, originalProperties) {\n-\tvar clazz, fieldName;\n-\n-\t// full definition form with className inherited from parent class\n-\tif (typeof className === \"object\" && originalProperties === undefined && className.inherits) {\n-\t\toriginalProperties = className;\n-\t\tclassName = originalProperties.inherits.__className__;\n-\t}\n+\tconst JS = module.exports;\n \n-\tif (typeof className == \"string\") {\n-\t\tvar shortClassName = className.match(/[a-zA-Z0-9_]*$/)[0];\t// take the last alphanum word since it must be a Javascript name\n+\tconst constructionStack     = [];\t// the list of objects currently being constructed\n+\tconst originalPropertiesMap = new WeakMap();\t// keeps track of the original properties for classes as defined (before they are modified)\n \n-\t\t// using eval here so that the className will be used in the function definition (shows in debuggers and such which makes debugging easier)\n-\t\teval('clazz = function ' + shortClassName + '() { return createFunction.call(this, arguments); };');\t//eslint-disable-line no-eval\n+\t// Polyfill\n+\t// SHOULDDO: get rid of this once .setPrototypeOf is widely supported\n+\tObject.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) {\n+\t\tobj.__proto__ = proto;\n+\t\treturn obj;\n+\t};\n \n-\t\tclazz.__className__ = className;\n+\t/**\n+\t * Creates a javascript class.\n+\t *\n+\t * For example:\n+\t * JS.class('BaseClass', {\n+\t *    static : {\n+\t *       fields : {\n+\t * \t        static1 : 'hello world'\n+\t *       },\n+\t *       methods : {\n+\t *\n+\t *       }\n+\t *    },\n+\t *\n+\t *    constructor : function() { },\n+\t *\n+\t *    fields : {\n+\t *       instanceField : 1,\n+\t *       instanceField : 2\n+\t *    },\n+\t *\n+\t *    methods : {\n+\t *      run : function(arg1) { },\n+\t *      run2 : { get : function() { } }\n+\t *    }\n+\t * });\n+\t *\n+\t * JS.class('Subclass', {\n+\t * \t  inherits : BaseClass,\n+\t *    mixin    : [ Mixin1, Mixin2 ]\n+\t * });\n+\t */\n+\tJS.class = function(className, originalProperties) {\n+\t\tlet clazz, fieldName;\n+\n+\t\t// full definition form with className inherited from parent class\n+\t\tif (typeof className === 'object' && originalProperties === undefined && className.inherits) {\n+\t\t\toriginalProperties = className;\n+\t\t\tclassName = originalProperties.inherits.__className__;\n+\t\t}\n \n-\t\t// check for stub call\n-\t\tif (originalProperties === undefined)\n-\t\t\treturn clazz;\n-\t}\n-\telse if (typeof className === \"function\") {\n-\t\tclazz     = className;\n-\t\tclassName = clazz.__className__;\n-\t}\n-\telse throw new Error(\"invalid parameter className: \" + className);\n+\t\tif (typeof className == 'string') {\n+\t\t\tconst shortClassName = className.match(/[a-zA-Z0-9_]*$/)[0];\t// take the last alphanum word since it must be a Javascript name\n \n-\toriginalProperties = normalizeProperties(originalProperties);\n-\toriginalPropertiesMap.set(clazz, originalProperties);\t// stash them away for use by subclasses in classes with mixins\n+\t\t\t// using eval here so that the className will be used in the function definition (shows in debuggers and such which makes debugging easier)\n+\t\t\teval(`clazz = function ${shortClassName}() { return createFunction.call(this, arguments); };`);\t// eslint-disable-line no-eval\n \n-\tsetupSuperClass(clazz, originalProperties);\n+\t\t\tclazz.__className__ = className;\n \n-\t// compose final class properties from all original sources\n-\tvar properties = clazz.properties = clone(originalProperties);\n-\tproperties.fields  = {};\n-\tproperties.methods = {};\n-\textendPropertiesWithClass(properties, clazz);\n+\t\t\t// check for stub call\n+\t\t\tif (originalProperties === undefined) {\n+\t\t\t\treturn clazz;\n+\t\t\t}\n+\t\t}\n+\t\telse if (typeof className === 'function') {\n+\t\t\tclazz     = className;\n+\t\t\tclassName = clazz.__className__;\n+\t\t}\n+\t\telse {\n+\t\t\tthrow new Error(`invalid parameter className: ${className}`);\n+\t\t}\n \n-\tprocessFields(clazz);\n+\t\toriginalProperties = normalizeProperties(originalProperties);\n+\t\toriginalPropertiesMap.set(clazz, originalProperties);\t// stash them away for use by subclasses in classes with mixins\n \n-\t// define user constructor\n-\tvar constructor = getConstructor(properties, className);\n-\tif (constructor) {\n-\t\tconstructor.methodName = \"userConstructor\";\n-\t\tconstructor.__class__  = clazz;\n-\t\tclazz.properties.userConstructor = constructor;\n-\t}\n+\t\tsetupSuperClass(clazz, originalProperties);\n \n-\t// define methods\n-\tclazz.prototype.toString     = BaseClass.prototype.toString;\n-\tclazz.prototype.forEachField = BaseClass.prototype.forEachField;\n-\tclazz.prototype.$super       = BaseClass.prototype.$super;\n-\tclazz.prototype.$superFunc   = BaseClass.prototype.$superFunc;\n-\tcreateMethods.call(clazz, properties.methods, clazz.prototype);\n-\tcreateMethods.call(clazz, properties.static.methods, clazz);\n-\n-\t// define fields\n-\tcreateGettersSetters.call(clazz, properties.static.fields, clazz);\n-\tcreateGettersSetters.call(clazz, properties.fields, clazz.prototype);\n-\tcreateFields.call(clazz, properties.static.fields);\n-\n-\t// call static constructor (if any)\n-\tvar staticConstructor = getConstructor(properties.static, className);\n-\tif (staticConstructor)\n-\t\tstaticConstructor.call(clazz);\n-\n-\tif (clazz !== BaseClass && Object.getPrototypeOf(clazz).afterCreateClass)\n-\t\tObject.getPrototypeOf(clazz).afterCreateClass(clazz);\n-\n-\treturn clazz;\n-};\n-\n-function setupSuperClass(clazz, properties) {\n-\t// setup super class\n-\tif (properties.inherits && typeof properties.inherits != 'function')\n-\t\tthrow new Error(\"'inherits' property is specified but is not a function for class: \" + clazz.__className__);\n-\n-\tif (properties.inherits) {\n-\t\tclazz.__parentClass__       = properties.inherits.prototype.constructor;\n-\t\tclazz.prototype             = Object.create(properties.inherits.prototype);\n-\t\tclazz.prototype.constructor = clazz;\n-\t}\n+\t\t// compose final class properties from all original sources\n+\t\tconst properties   = clazz.properties = clone(originalProperties);\n+\t\tproperties.fields  = {};\n+\t\tproperties.methods = {};\n+\t\textendPropertiesWithClass(properties, clazz);\n \n-\t// allows static properties inheritence\n-\tif (clazz !== BaseClass)\n-\t\tObject.setPrototypeOf(clazz, properties.inherits || BaseClass);\n-}\n+\t\tprocessFields(clazz);\n \n-function normalizeProperties(properties) {\n-\tproperties = defaults(properties, {\n-\t\tmethods : {}, fields  : {}, static  : {}, mixin : []\n-\t});\n-\tproperties.mixin = ensureArray(properties.mixin);\n+\t\t// define user constructor\n+\t\tconst constructor = getConstructor(properties, className);\n+\t\tif (constructor) {\n+\t\t\tconstructor.methodName = 'userConstructor';\n+\t\t\tconstructor.__class__  = clazz;\n+\t\t\tclazz.properties.userConstructor = constructor;\n+\t\t}\n \n-\tproperties.static = defaults(properties.static, {\n-\t\tmethods : {}, fields  : {}\n-\t});\n+\t\t// define methods\n+\t\tclazz.prototype.toString     = BaseClass.prototype.toString;\n+\t\tclazz.prototype.forEachField = BaseClass.prototype.forEachField;\n+\t\tclazz.prototype.$super       = BaseClass.prototype.$super;\n+\t\tclazz.prototype.$superFunc   = BaseClass.prototype.$superFunc;\n+\t\tcreateMethods.call(clazz, properties.methods, clazz.prototype);\n+\t\tcreateMethods.call(clazz, properties.static.methods, clazz);\n+\n+\t\t// define fields\n+\t\tcreateGettersSetters.call(clazz, properties.static.fields, clazz);\n+\t\tcreateGettersSetters.call(clazz, properties.fields, clazz.prototype);\n+\t\tcreateFields.call(clazz, properties.static.fields);\n+\n+\t\t// call static constructor (if any)\n+\t\tconst staticConstructor = getConstructor(properties.static, className);\n+\t\tif (staticConstructor) {\n+\t\t\tstaticConstructor.call(clazz);\n+\t\t}\n \n-\treturn properties;\n-}\n+\t\tif (clazz !== BaseClass && Object.getPrototypeOf(clazz).afterCreateClass) {\n+\t\t\tObject.getPrototypeOf(clazz).afterCreateClass(clazz);\n+\t\t}\n \n-function processFields(clazz) {\n-\t// normalize fields and invoke fieldDefinition event on each field\n-\t// done in a loop cause the event hander could add new field definitions\n-\tvar processedFields = {}, unprocessedFields, fieldName;\n-\tvar properties = clazz.properties;\n+\t\treturn clazz;\n+\t};\n \n-\tdo {\n-\t\tunprocessedFields = {};\n+\tfunction setupSuperClass(clazz, properties) {\n+\t\t// setup super class\n+\t\tif (properties.inherits && typeof properties.inherits != 'function') {\n+\t\t\tthrow new Error(`'inherits' property is specified but is not a function for class: ${clazz.__className__}`);\n+\t\t}\n \n-\t\tfor (fieldName in properties.fields) {\n-\t\t\tif (properties.fields[fieldName] != processedFields[fieldName])\n-\t\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName];\n+\t\tif (properties.inherits) {\n+\t\t\tclazz.__parentClass__       = properties.inherits.prototype.constructor;\n+\t\t\tclazz.prototype             = Object.create(properties.inherits.prototype);\n+\t\t\tclazz.prototype.constructor = clazz;\n \t\t}\n \n-\t\t// normalize field definitions so that any fieldDefinition event handlers can rely on a consistent field definition\n-\t\tfor (fieldName in unprocessedFields)\n-\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName] = normalizeField(unprocessedFields[fieldName]);\n+\t\t// allows static properties inheritence\n+\t\tif (clazz !== BaseClass) {\n+\t\t\tObject.setPrototypeOf(clazz, properties.inherits || BaseClass);\n+\t\t}\n+\t}\n \n-\t\tfor (fieldName in unprocessedFields) {\n-\t\t\tinvokeEvent('fieldDefinition', [ clazz, fieldName, unprocessedFields[fieldName] ]);\n+\tfunction normalizeProperties(properties) {\n+\t\tproperties = defaults(properties, {\n+\t\t\tmethods : {}, fields  : {}, static  : {}, mixin   : [],\n+\t\t});\n+\t\tproperties.mixin = ensureArray(properties.mixin);\n \n-\t\t\tif (properties.fields[fieldName] != unprocessedFields[fieldName])\t// check if entire field has been replaced\n-\t\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName];\n+\t\tproperties.static = defaults(properties.static, {\n+\t\t\tmethods : {}, fields  : {},\n+\t\t});\n \n-\t\t\tprocessedFields[fieldName] = properties.fields[fieldName] = normalizeField(unprocessedFields[fieldName]);\n-\t\t}\n+\t\treturn properties;\n \t}\n-\twhile (Object.keys(unprocessedFields).length > 0);\n-}\n \n-/**\n- * Redefines the field definition if short-hand notations are used.\n- * @param {any} field definition\n- * @return {Object} field object definition (at least contains a type property)\n- */\n-function normalizeField(field) {\n-\tswitch (typeof field) {\n-\t\tcase \"undefined\":\n-\t\t\tfield = { type : undefined };\n-\t\t\tbreak;\n-\t\tcase \"boolean\":\n-\t\t\tfield = { type : Boolean, init : field };\n-\t\t\tbreak;\n-\t\tcase \"number\":\n-\t\t\tfield = { type : Number, init : field };\n-\t\t\tbreak;\n-\t\tcase \"string\":\n-\t\t\tfield = { type : String, init : field };\n-\t\t\tbreak;\n-\t\tcase \"function\":\n-\t\t\tfield = { type : field };\n-\t\t\tbreak;\n-\t\tcase \"object\":\n-\t\t\tif (field === null)\n-\t\t\t\tfield = { type : Object, init : null };\n-\t\t\telse if (field.type === undefined)\n-\t\t\t\tfield.type = undefined;\n-\t\t\telse if (field.type === Boolean) {\n-\t\t\t\tif (!field.hasOwnProperty('init')) field.init = false;\n-\t\t\t}\n-\t\t\telse if (field.type === String) {\n-\t\t\t\tif (!field.hasOwnProperty('init')) field.init = '';\n+\tfunction processFields(clazz) {\n+\t\t// normalize fields and invoke fieldDefinition event on each field\n+\t\t// done in a loop cause the event hander could add new field definitions\n+\t\tlet unprocessedFields, fieldName;\n+\t\tconst processedFields = {};\n+\t\tconst properties      = clazz.properties;\n+\n+\t\tdo {\n+\t\t\tunprocessedFields = {};\n+\n+\t\t\tfor (fieldName in properties.fields) {\n+\t\t\t\tif (properties.fields[fieldName] != processedFields[fieldName]) {\n+\t\t\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName];\n+\t\t\t\t}\n \t\t\t}\n-\t\t\telse if (field.type === Number) {\n-\t\t\t\tif (!field.hasOwnProperty('init')) field.init = 0;\n+\n+\t\t\t// normalize field definitions so that any fieldDefinition event handlers can rely on a consistent field definition\n+\t\t\tfor (fieldName in unprocessedFields) {\n+\t\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName] = normalizeField(unprocessedFields[fieldName]);\n \t\t\t}\n-\t\t\telse if (typeof field.type != \"function\") {\n-\t\t\t\tvar a = normalizeField(field.type);\n-\t\t\t\tfield.type = a.type;\n-\t\t\t\tfield.init = field.init === undefined ? a.init : field.init;\n+\n+\t\t\tfor (fieldName in unprocessedFields) {\n+\t\t\t\tinvokeEvent('fieldDefinition', [ clazz, fieldName, unprocessedFields[fieldName] ]);\n+\n+\t\t\t\t// check if entire field has been replaced\n+\t\t\t\tif (properties.fields[fieldName] != unprocessedFields[fieldName]) {\n+\t\t\t\t\tunprocessedFields[fieldName] = properties.fields[fieldName];\n+\t\t\t\t}\n+\n+\t\t\t\tprocessedFields[fieldName] = properties.fields[fieldName] = normalizeField(unprocessedFields[fieldName]);\n \t\t\t}\n-\t\t\tbreak;\n+\t\t}\n+\t\twhile (Object.keys(unprocessedFields).length > 0);\n \t}\n \n-\treturn field;\n-}\n+\t/**\n+\t * Redefines the field definition if short-hand notations are used.\n+\t * @param {any} field definition\n+\t * @return {Object} field object definition (at least contains a type property)\n+\t */\n+\tfunction normalizeField(field) {\n+\t\tswitch (typeof field) {\n+\t\t\tcase 'undefined':\n+\t\t\t\tfield = { type : undefined };\n+\t\t\t\tbreak;\n+\t\t\tcase 'boolean':\n+\t\t\t\tfield = { type : Boolean, init : field };\n+\t\t\t\tbreak;\n+\t\t\tcase 'number':\n+\t\t\t\tfield = { type : Number, init : field };\n+\t\t\t\tbreak;\n+\t\t\tcase 'string':\n+\t\t\t\tfield = { type : String, init : field };\n+\t\t\t\tbreak;\n+\t\t\tcase 'function':\n+\t\t\t\tfield = { type : field };\n+\t\t\t\tbreak;\n+\t\t\tcase 'object':\n+\t\t\t\tif (field === null) {\n+\t\t\t\t\tfield = { type : Object, init : null };\n+\t\t\t\t}\n+\t\t\t\telse if (field.type === undefined) {\n+\t\t\t\t\tfield.type = undefined;\n+\t\t\t\t}\n+\t\t\t\telse if (field.type === Boolean) {\n+\t\t\t\t\tif (!field.hasOwnProperty('init')) {\n+\t\t\t\t\t\tfield.init = false;\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t\telse if (field.type === String) {\n+\t\t\t\t\tif (!field.hasOwnProperty('init')) {\n+\t\t\t\t\t\tfield.init = '';\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t\telse if (field.type === Number) {\n+\t\t\t\t\tif (!field.hasOwnProperty('init')) {\n+\t\t\t\t\t\tfield.init = 0;\n+\t\t\t\t\t}\n+\t\t\t\t}\n+\t\t\t\telse if (typeof field.type != 'function') {","path":"JS.js","position":431,"original_position":431,"commit_id":"7a4920a589dcff4da741df8a457c18c770b4b9ff","original_commit_id":"7a4920a589dcff4da741df8a457c18c770b4b9ff","user":{"login":"JoelHobsonRoadmunk","id":24391367,"node_id":"MDQ6VXNlcjI0MzkxMzY3","avatar_url":"https://avatars3.githubusercontent.com/u/24391367?v=4","gravatar_id":"","url":"https://api.github.com/users/JoelHobsonRoadmunk","html_url":"https://github.com/JoelHobsonRoadmunk","followers_url":"https://api.github.com/users/JoelHobsonRoadmunk/followers","following_url":"https://api.github.com/users/JoelHobsonRoadmunk/following{/other_user}","gists_url":"https://api.github.com/users/JoelHobsonRoadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/JoelHobsonRoadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoelHobsonRoadmunk/subscriptions","organizations_url":"https://api.github.com/users/JoelHobsonRoadmunk/orgs","repos_url":"https://api.github.com/users/JoelHobsonRoadmunk/repos","events_url":"https://api.github.com/users/JoelHobsonRoadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/JoelHobsonRoadmunk/received_events","type":"User","site_admin":false},"body":"!==","created_at":"2018-06-26T19:54:44Z","updated_at":"2018-06-26T20:02:24Z","html_url":"https://github.com/Roadmunk/JS/pull/13#discussion_r198276458","pull_request_url":"https://api.github.com/repos/Roadmunk/JS/pulls/13","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/comments/198276458"},"html":{"href":"https://github.com/Roadmunk/JS/pull/13#discussion_r198276458"},"pull_request":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/13"}}},"pull_request":{"url":"https://api.github.com/repos/Roadmunk/JS/pulls/13","id":196834549,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2ODM0NTQ5","html_url":"https://github.com/Roadmunk/JS/pull/13","diff_url":"https://github.com/Roadmunk/JS/pull/13.diff","patch_url":"https://github.com/Roadmunk/JS/pull/13.patch","issue_url":"https://api.github.com/repos/Roadmunk/JS/issues/13","number":13,"state":"open","locked":false,"title":"Bug/fix eslint","user":{"login":"JGets","id":2048855,"node_id":"MDQ6VXNlcjIwNDg4NTU=","avatar_url":"https://avatars3.githubusercontent.com/u/2048855?v=4","gravatar_id":"","url":"https://api.github.com/users/JGets","html_url":"https://github.com/JGets","followers_url":"https://api.github.com/users/JGets/followers","following_url":"https://api.github.com/users/JGets/following{/other_user}","gists_url":"https://api.github.com/users/JGets/gists{/gist_id}","starred_url":"https://api.github.com/users/JGets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JGets/subscriptions","organizations_url":"https://api.github.com/users/JGets/orgs","repos_url":"https://api.github.com/users/JGets/repos","events_url":"https://api.github.com/users/JGets/events{/privacy}","received_events_url":"https://api.github.com/users/JGets/received_events","type":"User","site_admin":false},"body":"- fixes the `eslintrc` configuration\r\n- fixes all warnings & errors generated by eslint","created_at":"2018-06-22T20:12:27Z","updated_at":"2018-06-26T20:02:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"649044d088bb0a3201da80fb9128997a755fab45","assignee":{"login":"JoelHobsonRoadmunk","id":24391367,"node_id":"MDQ6VXNlcjI0MzkxMzY3","avatar_url":"https://avatars3.githubusercontent.com/u/24391367?v=4","gravatar_id":"","url":"https://api.github.com/users/JoelHobsonRoadmunk","html_url":"https://github.com/JoelHobsonRoadmunk","followers_url":"https://api.github.com/users/JoelHobsonRoadmunk/followers","following_url":"https://api.github.com/users/JoelHobsonRoadmunk/following{/other_user}","gists_url":"https://api.github.com/users/JoelHobsonRoadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/JoelHobsonRoadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoelHobsonRoadmunk/subscriptions","organizations_url":"https://api.github.com/users/JoelHobsonRoadmunk/orgs","repos_url":"https://api.github.com/users/JoelHobsonRoadmunk/repos","events_url":"https://api.github.com/users/JoelHobsonRoadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/JoelHobsonRoadmunk/received_events","type":"User","site_admin":false},"assignees":[{"login":"JoelHobsonRoadmunk","id":24391367,"node_id":"MDQ6VXNlcjI0MzkxMzY3","avatar_url":"https://avatars3.githubusercontent.com/u/24391367?v=4","gravatar_id":"","url":"https://api.github.com/users/JoelHobsonRoadmunk","html_url":"https://github.com/JoelHobsonRoadmunk","followers_url":"https://api.github.com/users/JoelHobsonRoadmunk/followers","following_url":"https://api.github.com/users/JoelHobsonRoadmunk/following{/other_user}","gists_url":"https://api.github.com/users/JoelHobsonRoadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/JoelHobsonRoadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JoelHobsonRoadmunk/subscriptions","organizations_url":"https://api.github.com/users/JoelHobsonRoadmunk/orgs","repos_url":"https://api.github.com/users/JoelHobsonRoadmunk/repos","events_url":"https://api.github.com/users/JoelHobsonRoadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/JoelHobsonRoadmunk/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":913630805,"node_id":"MDU6TGFiZWw5MTM2MzA4MDU=","url":"https://api.github.com/repos/Roadmunk/JS/labels/%CE%B1/progress","name":"α/progress","color":"fef2c0","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Roadmunk/JS/pulls/13/commits","review_comments_url":"https://api.github.com/repos/Roadmunk/JS/pulls/13/comments","review_comment_url":"https://api.github.com/repos/Roadmunk/JS/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Roadmunk/JS/issues/13/comments","statuses_url":"https://api.github.com/repos/Roadmunk/JS/statuses/7a4920a589dcff4da741df8a457c18c770b4b9ff","head":{"label":"Roadmunk:bug/fix-eslint","ref":"bug/fix-eslint","sha":"7a4920a589dcff4da741df8a457c18c770b4b9ff","user":{"login":"Roadmunk","id":9951284,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NTEyODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/9951284?v=4","gravatar_id":"","url":"https://api.github.com/users/Roadmunk","html_url":"https://github.com/Roadmunk","followers_url":"https://api.github.com/users/Roadmunk/followers","following_url":"https://api.github.com/users/Roadmunk/following{/other_user}","gists_url":"https://api.github.com/users/Roadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/Roadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Roadmunk/subscriptions","organizations_url":"https://api.github.com/users/Roadmunk/orgs","repos_url":"https://api.github.com/users/Roadmunk/repos","events_url":"https://api.github.com/users/Roadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/Roadmunk/received_events","type":"Organization","site_admin":false},"repo":{"id":58511292,"node_id":"MDEwOlJlcG9zaXRvcnk1ODUxMTI5Mg==","name":"JS","full_name":"Roadmunk/JS","owner":{"login":"Roadmunk","id":9951284,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NTEyODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/9951284?v=4","gravatar_id":"","url":"https://api.github.com/users/Roadmunk","html_url":"https://github.com/Roadmunk","followers_url":"https://api.github.com/users/Roadmunk/followers","following_url":"https://api.github.com/users/Roadmunk/following{/other_user}","gists_url":"https://api.github.com/users/Roadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/Roadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Roadmunk/subscriptions","organizations_url":"https://api.github.com/users/Roadmunk/orgs","repos_url":"https://api.github.com/users/Roadmunk/repos","events_url":"https://api.github.com/users/Roadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/Roadmunk/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Roadmunk/JS","description":"Javascript OOP library.","fork":false,"url":"https://api.github.com/repos/Roadmunk/JS","forks_url":"https://api.github.com/repos/Roadmunk/JS/forks","keys_url":"https://api.github.com/repos/Roadmunk/JS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Roadmunk/JS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Roadmunk/JS/teams","hooks_url":"https://api.github.com/repos/Roadmunk/JS/hooks","issue_events_url":"https://api.github.com/repos/Roadmunk/JS/issues/events{/number}","events_url":"https://api.github.com/repos/Roadmunk/JS/events","assignees_url":"https://api.github.com/repos/Roadmunk/JS/assignees{/user}","branches_url":"https://api.github.com/repos/Roadmunk/JS/branches{/branch}","tags_url":"https://api.github.com/repos/Roadmunk/JS/tags","blobs_url":"https://api.github.com/repos/Roadmunk/JS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Roadmunk/JS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Roadmunk/JS/git/refs{/sha}","trees_url":"https://api.github.com/repos/Roadmunk/JS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Roadmunk/JS/statuses/{sha}","languages_url":"https://api.github.com/repos/Roadmunk/JS/languages","stargazers_url":"https://api.github.com/repos/Roadmunk/JS/stargazers","contributors_url":"https://api.github.com/repos/Roadmunk/JS/contributors","subscribers_url":"https://api.github.com/repos/Roadmunk/JS/subscribers","subscription_url":"https://api.github.com/repos/Roadmunk/JS/subscription","commits_url":"https://api.github.com/repos/Roadmunk/JS/commits{/sha}","git_commits_url":"https://api.github.com/repos/Roadmunk/JS/git/commits{/sha}","comments_url":"https://api.github.com/repos/Roadmunk/JS/comments{/number}","issue_comment_url":"https://api.github.com/repos/Roadmunk/JS/issues/comments{/number}","contents_url":"https://api.github.com/repos/Roadmunk/JS/contents/{+path}","compare_url":"https://api.github.com/repos/Roadmunk/JS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Roadmunk/JS/merges","archive_url":"https://api.github.com/repos/Roadmunk/JS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Roadmunk/JS/downloads","issues_url":"https://api.github.com/repos/Roadmunk/JS/issues{/number}","pulls_url":"https://api.github.com/repos/Roadmunk/JS/pulls{/number}","milestones_url":"https://api.github.com/repos/Roadmunk/JS/milestones{/number}","notifications_url":"https://api.github.com/repos/Roadmunk/JS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Roadmunk/JS/labels{/name}","releases_url":"https://api.github.com/repos/Roadmunk/JS/releases{/id}","deployments_url":"https://api.github.com/repos/Roadmunk/JS/deployments","created_at":"2016-05-11T03:25:11Z","updated_at":"2018-06-21T20:10:52Z","pushed_at":"2018-06-22T20:12:27Z","git_url":"git://github.com/Roadmunk/JS.git","ssh_url":"git@github.com:Roadmunk/JS.git","clone_url":"https://github.com/Roadmunk/JS.git","svn_url":"https://github.com/Roadmunk/JS","homepage":null,"size":834,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":2,"watchers":1,"default_branch":"master"}},"base":{"label":"Roadmunk:master","ref":"master","sha":"48120e8a6ce3203c4162a81b68f2f23937317cf3","user":{"login":"Roadmunk","id":9951284,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NTEyODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/9951284?v=4","gravatar_id":"","url":"https://api.github.com/users/Roadmunk","html_url":"https://github.com/Roadmunk","followers_url":"https://api.github.com/users/Roadmunk/followers","following_url":"https://api.github.com/users/Roadmunk/following{/other_user}","gists_url":"https://api.github.com/users/Roadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/Roadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Roadmunk/subscriptions","organizations_url":"https://api.github.com/users/Roadmunk/orgs","repos_url":"https://api.github.com/users/Roadmunk/repos","events_url":"https://api.github.com/users/Roadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/Roadmunk/received_events","type":"Organization","site_admin":false},"repo":{"id":58511292,"node_id":"MDEwOlJlcG9zaXRvcnk1ODUxMTI5Mg==","name":"JS","full_name":"Roadmunk/JS","owner":{"login":"Roadmunk","id":9951284,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5NTEyODQ=","avatar_url":"https://avatars1.githubusercontent.com/u/9951284?v=4","gravatar_id":"","url":"https://api.github.com/users/Roadmunk","html_url":"https://github.com/Roadmunk","followers_url":"https://api.github.com/users/Roadmunk/followers","following_url":"https://api.github.com/users/Roadmunk/following{/other_user}","gists_url":"https://api.github.com/users/Roadmunk/gists{/gist_id}","starred_url":"https://api.github.com/users/Roadmunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Roadmunk/subscriptions","organizations_url":"https://api.github.com/users/Roadmunk/orgs","repos_url":"https://api.github.com/users/Roadmunk/repos","events_url":"https://api.github.com/users/Roadmunk/events{/privacy}","received_events_url":"https://api.github.com/users/Roadmunk/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Roadmunk/JS","description":"Javascript OOP library.","fork":false,"url":"https://api.github.com/repos/Roadmunk/JS","forks_url":"https://api.github.com/repos/Roadmunk/JS/forks","keys_url":"https://api.github.com/repos/Roadmunk/JS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Roadmunk/JS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Roadmunk/JS/teams","hooks_url":"https://api.github.com/repos/Roadmunk/JS/hooks","issue_events_url":"https://api.github.com/repos/Roadmunk/JS/issues/events{/number}","events_url":"https://api.github.com/repos/Roadmunk/JS/events","assignees_url":"https://api.github.com/repos/Roadmunk/JS/assignees{/user}","branches_url":"https://api.github.com/repos/Roadmunk/JS/branches{/branch}","tags_url":"https://api.github.com/repos/Roadmunk/JS/tags","blobs_url":"https://api.github.com/repos/Roadmunk/JS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Roadmunk/JS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Roadmunk/JS/git/refs{/sha}","trees_url":"https://api.github.com/repos/Roadmunk/JS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Roadmunk/JS/statuses/{sha}","languages_url":"https://api.github.com/repos/Roadmunk/JS/languages","stargazers_url":"https://api.github.com/repos/Roadmunk/JS/stargazers","contributors_url":"https://api.github.com/repos/Roadmunk/JS/contributors","subscribers_url":"https://api.github.com/repos/Roadmunk/JS/subscribers","subscription_url":"https://api.github.com/repos/Roadmunk/JS/subscription","commits_url":"https://api.github.com/repos/Roadmunk/JS/commits{/sha}","git_commits_url":"https://api.github.com/repos/Roadmunk/JS/git/commits{/sha}","comments_url":"https://api.github.com/repos/Roadmunk/JS/comments{/number}","issue_comment_url":"https://api.github.com/repos/Roadmunk/JS/issues/comments{/number}","contents_url":"https://api.github.com/repos/Roadmunk/JS/contents/{+path}","compare_url":"https://api.github.com/repos/Roadmunk/JS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Roadmunk/JS/merges","archive_url":"https://api.github.com/repos/Roadmunk/JS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Roadmunk/JS/downloads","issues_url":"https://api.github.com/repos/Roadmunk/JS/issues{/number}","pulls_url":"https://api.github.com/repos/Roadmunk/JS/pulls{/number}","milestones_url":"https://api.github.com/repos/Roadmunk/JS/milestones{/number}","notifications_url":"https://api.github.com/repos/Roadmunk/JS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Roadmunk/JS/labels{/name}","releases_url":"https://api.github.com/repos/Roadmunk/JS/releases{/id}","deployments_url":"https://api.github.com/repos/Roadmunk/JS/deployments","created_at":"2016-05-11T03:25:11Z","updated_at":"2018-06-21T20:10:52Z","pushed_at":"2018-06-22T20:12:27Z","git_url":"git://github.com/Roadmunk/JS.git","ssh_url":"git@github.com:Roadmunk/JS.git","clone_url":"https://github.com/Roadmunk/JS.git","svn_url":"https://github.com/Roadmunk/JS","homepage":null,"size":834,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":2,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/13"},"html":{"href":"https://github.com/Roadmunk/JS/pull/13"},"issue":{"href":"https://api.github.com/repos/Roadmunk/JS/issues/13"},"comments":{"href":"https://api.github.com/repos/Roadmunk/JS/issues/13/comments"},"review_comments":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/13/comments"},"review_comment":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Roadmunk/JS/pulls/13/commits"},"statuses":{"href":"https://api.github.com/repos/Roadmunk/JS/statuses/7a4920a589dcff4da741df8a457c18c770b4b9ff"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"JoelHobsonRoadmunk"}}