{"_id":"classer","_rev":"26-47097c21f1a6378c868ef44018d0c410","name":"classer","time":{"modified":"2022-06-13T06:05:58.779Z","created":"2014-05-28T17:39:12.040Z","0.0.1":"2014-05-28T17:39:12.040Z","0.0.2":"2014-05-28T18:07:12.404Z","0.0.3":"2014-05-30T23:55:25.709Z","0.0.4":"2014-05-31T01:22:37.100Z","0.1.0":"2016-01-20T23:06:38.605Z","0.1.1":"2016-01-21T00:27:00.505Z","0.1.2":"2016-01-21T00:41:53.641Z","0.1.3":"2016-01-21T00:49:25.265Z","0.1.4":"2016-01-21T00:58:19.037Z","0.1.5":"2016-01-21T00:59:37.085Z","0.2.0":"2016-01-29T22:46:52.214Z","0.3.0":"2016-02-03T22:04:47.982Z","0.3.1":"2016-04-13T20:20:12.418Z","0.3.2":"2016-06-02T20:57:27.230Z","1.0.0":"2016-06-08T01:47:08.957Z","1.0.1":"2016-06-08T01:49:59.717Z","1.1.0":"2016-06-08T05:59:11.609Z","1.2.0":"2016-06-08T06:25:37.733Z","1.3.0":"2016-06-08T06:34:51.092Z"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist-tags":{"latest":"1.3.0"},"description":"A dependent-less module utility to create `new`-less class instances that double as operator functions","readme":"# classer\n\nA light-weight (dependent-less) module utility that provides `new`-less and asynchronous class instantiation for module exports that practice an Object-Oriented-Programming paradigm. Also includes a 7-channel colored console logger. Works in both node.js and browser.\n\n# Contents\n - [Setup](#install)\n - [Example Usage](#use)\n - [API Reference](#api)\n\n## Install\n```sh\n$ npm i --save classer\n```\n\n## Use\n\nThe following module demonstrates an effective use members in an OOP fashion:\n\n#### my-class.js:\n```js\n// import classer\nconst classer = require('classer');\n\n// symbol to access private members (except for methods that use public members)\nlet _private = Symbol();\n\n// private method that can use public members\nlet $add_name = Symbol();  // less convenient than latter since each method requires own symbol\n\n\n/**\n* private static:\n**/\n\n// private static constant field\nconst S_NAME_DEFAULT = 'no-name';\n\n// private static (mutatable) field\nlet s_class_message = 'none';\n\n\n/**\n* class:\n**/\nclass MyClass {\n\n    constructor(h_config={}) {\n\n        // destruct config\n        let {\n            name: s_name,\n        } = h_config;\n\n        /**\n        * private members:\n        **/\n        Object.assign(this, {\n            [_private]: {\n\n                // private field\n                name: s_name || S_NAME_DEFAULT,\n\n                // private method that mutates private fields (cannot call public methods!)\n                reset() {\n                    // `this` will be the [_private] object\n                    this.name = S_NAME_DEFAULT;\n                },\n            },\n\n            // private method that can access/mutate private fields AND call public methods\n            [$add_name](s_name) {\n                // mutate private field; `this` will be the instance object\n                this[_private].name += ' '+s_name;\n\n                // use public getter\n                return this.name;\n            },\n        });\n    }\n\n    /**\n    * public members:\n    **/\n\n    // public method to call public operator\n    greet() {\n        return this();\n    }\n\n    // public method to access private field\n    getName() {\n        return this[_private].name;\n    }\n\n    // public getter to access private field\n    get name() {\n        return this[_private].name;\n    }\n\n    // public setter to mutate private field\n    set name(s_name) {\n        this[_private].name = s_name;\n    }\n\n    // public method to call private method\n    reset() {\n        // call private method with `this[_private]` so it can access private members\n        this[_private].reset();\n    }\n\n    // public method to mutate private field\n    add(s_name) {\n        // call private method with `this` so it can access public members\n        this[$add_name](s_name);\n\n        // return mutated private field\n        return this[_private].name;\n    }\n\n    /**\n    * public static members (getters/setters and methods only):\n    **/\n\n    // public static method to access private static field\n    static getMessage() {\n        return s_class_message;\n    }\n\n    // public static getter to access private static field\n    static get message() {\n        return s_class_message;\n    }\n\n    // public static setter to mutate private static field\n    static set message(s_message) {\n        s_class_message = s_message;\n    }\n\n    // public static method to access public static field\n    static getSpecies() {\n        return MyClass.species;\n    }\n}\n\n\n// lets MyClass be called without `new` keyword\nmodule.exports = classer.export(MyClass, function() {\n    // optional operator() function that acts as handle to instance of this class\n    return `My name is ${this[_private].name}`;\n}, {\n    /**\n    * additional public static members including fields (overrides members defined by class on conflict):\n    **/\n\n    // public static field value (otherwise would be forced to use getter function in class-syntax)\n    species: 'classic',\n\n    // public static method\n    help() {\n        return `help yourself, i'm an ${MyClass.species} species!`;\n    },\n});\n\n```\n\nBy exporting the class with `classer.export(class, operator, staticMembers)`, and by using the coding convention above, you get the following API features:\n\n#### index.js:\n```js\nconst MyClass = require('./my-class.js');\n\n// instantiate class without `new`\nlet instance = MyClass({name: 'frank'});\n\n// call instance handle as an operator\ninstance(); // 'My name is frank'\n\n// proof that public method can access operator\ninstance.greet(); // 'My name is frank'\n\n// access private field using a method\ninstance.getName(); // 'frank'\n\n// access private field using a getter\ninstance.name; // 'frank'\n\n// mutate private field using a method\ninstance.reset();\ninstance.name; // 'no-name'\n\n// mutate private field using a setter\ninstance.name = 'frankie';\ninstance.name; // 'frankie'\n\n// access a private static field using a public static method\nMyClass.getMessage(); // 'none'\n\n// access a private static field using a public static getter\nMyClass.message; // 'none'\n\n// mutate a private static field using a public static setter\nMyClass.message = 'All your base are belong to us!';\nMyClass.message; // 'All your base are belong to us!'\n\n// access a public static field\nMyClass.species; // 'none'\n\n// mutate a public static field\nMyClass.species = 'unknown';\nMyClass.species; // 'unknown'\n\n// proof that changes to a static field are reflected when using a public static method\nMyClass.help(); // 'help yourself, i'm an unknown species!'\n```\n\n## API\n---\n### classer.export(class: class[, operator: {function|array|other}[, staticMembers: plainObject]])\nCreates a function that instantiates `class` when invoked (with or without `new` operator). If `operator` is supplied, every instance of the class returned by the constructor will be that object, with its prototype chain set and any necessary properties overriden. If `staticMembers` is provided, all of its' members will be ammended to `class`, and setters/getters will be defined on the returned object to allow mutations without losing pointer references. See example above for more detail.\n\n---\n### classer.exportAsync(class: class[, operator: {function|array|other}[, staticMembers: plainObject]])\nSame as `classer.export`, except that instead of returning the instance, a callback (provided as the last argument to the constructor call) receives the instance. To support this, `class` must accept a callback function as the last parameter in its constructor. The constructor may override `operator` by passing an object to the callback. For example:\n#### async-class.js\n```js\nconst classer = require('classer');\nconst _private = Symbol();\n\nclass AsyncClass {\n    constructor(s_name, f_okay_async) {\n        // go async\n        setTimeout(() => {\n            // finishing setting private fields...\n            this[_private].name = s_name;\n            \n            // class instance is ready\n\n            // fred! override the default operator\n            if('fred' === s_name) {\n                f_okay_async(function() {\n                    return `${this[_private].name} rules!`;\n                });\n            }\n            // use default operator\n            else {\n                f_okay_async();\n            }\n        }, 200);\n    }\n}\n\n// export\nmodule.exports = classer.exportAsync(AsyncClass, function operator() {\n    return `My name is ${this[_private].name}`;\n});\n```\n\nThen, from another script:\n```js\nconst AsyncClass = require('./async-class.js');\n\nAsyncClass({name: 'george'}, (k_async) => {\n    k_async();  // 'My name is george'\n});\n\nAsyncClass({name: 'fred'}, (k_async) => {\n    k_async();  // 'fred rules!'\n});\n```\n\n---\n### classer.logger(class_name: string)\n### classer.logger(class: class)\nCreates a logger instance that includes 7 channels of colored output (works in both node.js and browser)\n```js\nclass MyClass {}\nconst local = classer.logger(MyClass);\n/** OR **/\nconst local = classer.logger('MyClass');\n\n/** THEN **/\nlocal.log('pizza'); // prints: '[MyClass]+0.012s/ pizza'\n```\n\nThe 7 log channels are as follows:\n- `.log` - calls `console.log` using default console color\n- `.out` - calls `console.log` using light cyan color\n- `.good` - calls `console.log` using green color\n- `.info` - calls `console.info` using blue color\n- `.warn` - calls `console.warn` using orange color\n- `.error` - calls `console.error` using red color\n- `.fail` - calls `console.error` using vibrant blood color, then throws an error\n\n\n","versions":{"0.1.0":{"name":"classer","version":"0.1.0","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"6635d38a4c287cbe8211199842758ed49f84c096","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.0","_shasum":"942a84eb44fd4d717f59b15239813d246f6f37bd","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"942a84eb44fd4d717f59b15239813d246f6f37bd","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.0.tgz","integrity":"sha512-gUZMFcj/L4oby/S3IHct43AcGJW3LKb2NKA7zBj2yiy/E3gxOja/41/BS9gVQO8WvlNzUc6VG1GsK1j91LlFLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERbFfzzV1SYluW4+CyZ5Jc/ZD0t1cXrSJvTUXMlq8xOAiEA9krdJKkB0SaqYoTE++gCYd1RSOC82ElR/RqaoJEPrjU="}]}},"0.1.1":{"name":"classer","version":"0.1.1","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"a4c507d7bc8a186df2073f5254def03bf3c020ea","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.1","_shasum":"43f43e9688fee38daaa44e986e9f4c5548a3a745","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"43f43e9688fee38daaa44e986e9f4c5548a3a745","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.1.tgz","integrity":"sha512-dZLSPa9etO9DcAnurse+VnSjLs2dpzC0WZPrCd/S5tfr0Q2r4VJU6KDKXJ+/yfmpretjxxQFarf9fsafDUQ8GA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAmSg+CdaUvbc+sZd0C/YBRKjRn5uIuAUPqsMeqdz2g1AiBahp/VEntYX4o7I8I+GmavLLfS3XkwhuRYdHcwoeVAgA=="}]}},"0.1.2":{"name":"classer","version":"0.1.2","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"12adfd15fa7f7564edb97a27d0d133ba851b97fc","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.2","_shasum":"d6d1348aea2794b744f7f5eb7c4fcc93127eb214","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"d6d1348aea2794b744f7f5eb7c4fcc93127eb214","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.2.tgz","integrity":"sha512-u4NLbhIECptAxWOBihPJC42Sf5JnewHSDKKvlX5RJCg8L6+HTeS+ZnWzV9pNq4TKXdc79DDsmH++zLtiLpcAsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDltwKmrOf/9vD9D+x6p0agKCDayhMAW/KySjOifpiTLgIhALt0Smx4OJQeM8Sd0lVyO61eLl8fR8e6gglftDHh+ObF"}]}},"0.1.3":{"name":"classer","version":"0.1.3","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"23f7499e0dd110f4cc996de7798c23c331d02bcf","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.3","_shasum":"e88d8651f5d0c7d4c677e760c7d3fbafee2a3f67","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"e88d8651f5d0c7d4c677e760c7d3fbafee2a3f67","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.3.tgz","integrity":"sha512-Q1iOqiJtwHA7xQHKj4qrkyG4T2t0KCJ8BaAngyM848Zj6p1KS90jHX+6U1S+Boi3SY4mH7CN/peyg2MjaEPRHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNw84suTw/QSwHMJsfnUsXhBoooyE8cstvu9V0N/oDFAiBAOiPBAVfxhyeIdD8L1YIKdnkFQ5aZ5MQqiHzem5Edog=="}]}},"0.1.4":{"name":"classer","version":"0.1.4","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"0f6563194a852e8cb70389979e0edb9fb8fd6158","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.4","_shasum":"b06ab98570eaf2e044b3afefd33e16f2258c6b81","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"b06ab98570eaf2e044b3afefd33e16f2258c6b81","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.4.tgz","integrity":"sha512-pe3avu96dg+LtY1lo1nvYiTfee5DnwVFdRaNQ4tLSS1qXxPXP93hI4MjnCGxorMVVUs4wYINKC+qYnRJsUlLag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXx9B9OEt6nhdKl7lkn9f+z6yYYXvPDYKjPBaNn9yD4gIgECqWNZ0LeG7vC89dRd0A+lVkfdZfH9K7qWfzjK2qrXM="}]}},"0.1.5":{"name":"classer","version":"0.1.5","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{"winston":"^2.1.1"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"4fdbdee4063944296b86ae8c7e46d01ef2b294d5","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.1.5","_shasum":"19367105974d408f955723026b264951568431f9","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"19367105974d408f955723026b264951568431f9","tarball":"https://registry.npmjs.org/classer/-/classer-0.1.5.tgz","integrity":"sha512-y1RMvD8J06Yp8tifi3odGGmb0vhFLyn5nppW8UH2w7MihmQKiZyxl7wkFlXhIHNrrMpOyhVd4aj9zTVVihYPOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBsm6kogZgVt3fW/Lp1fZU6s008l35lSWNHI8uuZC8nPAiAgidqVbf8RqZa3NPuqYJ99Sn5xN6OT+CRTAjU++Rv3sQ=="}]}},"0.2.0":{"name":"classer","version":"0.2.0","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{"winston":"^2.1.1"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"740f876da91d0e38159c0c603048c0212e6ec91f","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.2.0","_shasum":"f53cdbeab15f8e84a06beff65e57ed0a20f0841c","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"f53cdbeab15f8e84a06beff65e57ed0a20f0841c","tarball":"https://registry.npmjs.org/classer/-/classer-0.2.0.tgz","integrity":"sha512-B6IZQk3UCVEAXnJmbhabcro5vSJB808zDQFWcu621zojy5C32gFUlAsL7zUs2QTYUoojknwo6s/jNKzR4T4QIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYilGufXg5Hap8zRrh55R53e3YEt9sts35Jszv3psZRwIhAMfO+Oh7iOngWTrJKK9/Qil2ggPX/yYw9/GBNoPOzLFN"}]}},"0.3.0":{"name":"classer","version":"0.3.0","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{"winston":"^2.1.1"},"devDependencies":{"babel-core":"^6.4.5","babel-eslint":"^4.1.6","babel-plugin-transform-runtime":"^6.4.3","babel-preset-es2015":"^6.3.13","cli-color":"^1.1.0","del":"^2.0.2","gulp":"^3.6.0","gulp-babel":"^6.1.1","gulp-eslint":"^1.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.3","gulp-mocha":"^2.0.0","gulp-plumber":"^1.0.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"bf4ec5401def33fe308dd6fb494ae00756accb1b","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.3.0","_shasum":"9327e31907ceb42673a919afc05357ca199d7711","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"9327e31907ceb42673a919afc05357ca199d7711","tarball":"https://registry.npmjs.org/classer/-/classer-0.3.0.tgz","integrity":"sha512-wLwo09MZgZXxGWX+EnCL3oIEKqQG3J+dlLalsyIUplirltKkc6SFgYT1nsBt/gj539Ol5Fszl9zNC2j7LwX1Fg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEI3n6djFpd5zd9rtCN2oN73qfQYT5iA9vekX5E8YLvVAiBwcDUbD1AXbpHSbB8TrzQ+GYMpaZK46weYf5MMlM1JZw=="}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/classer-0.3.0.tgz_1454537086821_0.9234135646838695"}},"0.3.1":{"name":"classer","version":"0.3.1","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{"cli-color":"^1.1.0","winston":"^2.2.0"},"devDependencies":{"babel-core":"^6.7.6","babel-eslint":"^6.0.2","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"b9d6d9ace101e6b73025493376fcc0789cdcbd7b","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.3.1","_shasum":"c7c91c764122ae0f8be66376a43ef729a8188780","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"c7c91c764122ae0f8be66376a43ef729a8188780","tarball":"https://registry.npmjs.org/classer/-/classer-0.3.1.tgz","integrity":"sha512-egwHf8ofHNcUR2PrLT93E81jIYJJJClDEONlpDB9zKbJmtCzCiZtXadp5qBbN4pmS4ugYRYBwlrrGMHeR/jUdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHImPMPRCVaLMF2KDudrLQ4pzqPk93yB19S7KWrRCp9lAiEA4ZHefiQLxHsa1o6apjFqeKcHObvHfZoqtSr4Qjm2714="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/classer-0.3.1.tgz_1460578810729_0.4704912381712347"}},"0.3.2":{"name":"classer","version":"0.3.2","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist"],"main":"dist/main/index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{"cli-color":"^1.1.0","winston":"^2.2.0"},"devDependencies":{"babel-core":"^6.7.6","babel-eslint":"^6.0.2","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"5ced28f48f4fd03f66e40b019b70604424d7ec99","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@0.3.2","_shasum":"f649f81373dfaa0fcff78cfac1803aacea025d35","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"f649f81373dfaa0fcff78cfac1803aacea025d35","tarball":"https://registry.npmjs.org/classer/-/classer-0.3.2.tgz","integrity":"sha512-NFRVu624qxoK1SJVs75PQLSlxTmmTVV4EY+3vewolB+3wVrUIZW3GkLuWx8TC4ciBT4CKpwDQY3j7KJ/cZ9/Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjxpBKbaFObygQWK51BLfo6MKOSqDiUTckmCNb4pBWHQIhAKuvtAPIcIiWLdYtjohV/V+1wMWTDz7HjgFEv8H71meU"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/classer-0.3.2.tgz_1464901045890_0.6422799557913095"}},"1.0.0":{"name":"classer","version":"1.0.0","description":"Yet another way to create class-like object/functions with private, public, and static members","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist.es5","dist.es6"],"main":"index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{},"devDependencies":{"babel-core":"^6.7.6","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-debug":"^2.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","gulp-soda":"^0.3.0","gulp-sourcemaps":"^1.6.0","gulp-util":"^3.0.7","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"bd8a368156360fffa142279606c41082da40a08d","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@1.0.0","_shasum":"6a5ca6dfb84f4469d8548078e49094624a25f1b8","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"6a5ca6dfb84f4469d8548078e49094624a25f1b8","tarball":"https://registry.npmjs.org/classer/-/classer-1.0.0.tgz","integrity":"sha512-mQ7gC4WOZHyffLPPnlcTGRUVs+Pdt1DyRC7kf8rih868ImDJmC1o/IDmt1Y/45KjElMhYWS7gfI+JsSUde+CrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE8wzmanTO91734q3DFbhFnAUhsw9o1Cwf6D2xL3iRHaAiEAgObvZyK7VDSSMN683Ok+84Du8Eq1HDLTt7EGI8b9kVQ="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/classer-1.0.0.tgz_1465350426434_0.18666618247516453"}},"1.0.1":{"name":"classer","version":"1.0.1","description":"A dependent-less module utility to create `new`-less class instances that double as operator functions","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist.es5","dist.es6"],"main":"index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{},"devDependencies":{"babel-core":"^6.7.6","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-debug":"^2.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","gulp-soda":"^0.3.0","gulp-sourcemaps":"^1.6.0","gulp-util":"^3.0.7","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"9fa25fb1c78b02e0dd255ff7616f076d8b3078c8","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@1.0.1","_shasum":"39ddd386c810229b827c972dfc66743e1bdec9a9","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"39ddd386c810229b827c972dfc66743e1bdec9a9","tarball":"https://registry.npmjs.org/classer/-/classer-1.0.1.tgz","integrity":"sha512-3YMXtq+amKNRgqLhpqdVD7dPxF/oi7EiCgYszKI/evkadHYFsaC6VQTT+oV7THoPZ885AqsxMr2jWeegSFLmYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDEMD5+UzQsP0qGz69IEXnOK/EtIDFQmEN1cEt+vdgCwIgQa3Z3orOZV8a1ayoOkQzQpFxJM27W47PYy4/NMM1Wp0="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/classer-1.0.1.tgz_1465350597725_0.016102183144539595"}},"1.1.0":{"name":"classer","version":"1.1.0","description":"A dependent-less module utility to create `new`-less class instances that double as operator functions","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist.es5","dist.es6"],"main":"index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{},"devDependencies":{"babel-core":"^6.7.6","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-debug":"^2.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","gulp-soda":"^0.3.0","gulp-sourcemaps":"^1.6.0","gulp-util":"^3.0.7","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"1f2c00ec12fdf1f138900a7cd3f76c88397fa29e","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@1.1.0","_shasum":"3c45af738b1fe6931c88edf92850304884cfdb4e","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"3c45af738b1fe6931c88edf92850304884cfdb4e","tarball":"https://registry.npmjs.org/classer/-/classer-1.1.0.tgz","integrity":"sha512-XNUyZ/O3mM/z5SPSAVWR+wH/GeEU/FVl6aSteD3+OxqOlJmUzSItdzhx+Zo4571xrD9rqcIn5cun0/5b5xayfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7sWgYIBFiZjYuac+qK6p1GgrLw5y6hHwuAErVcx8GZgIhAMkTXeDCOFLSVUI64EuqI/W8Ootz/KCzBPQyiIeDrC9u"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/classer-1.1.0.tgz_1465365551105_0.126209266949445"}},"1.2.0":{"name":"classer","version":"1.2.0","description":"A dependent-less module utility to create `new`-less class instances that double as operator functions","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist.es5","dist.es6"],"main":"index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{},"devDependencies":{"babel-core":"^6.7.6","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-debug":"^2.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","gulp-soda":"^0.3.0","gulp-sourcemaps":"^1.6.0","gulp-util":"^3.0.7","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"9825b869f9398b4e2e8a9a8056ac5ed9bae40959","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@1.2.0","_shasum":"f6267e49f190bed21c2b3e06d551040350e9c983","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"f6267e49f190bed21c2b3e06d551040350e9c983","tarball":"https://registry.npmjs.org/classer/-/classer-1.2.0.tgz","integrity":"sha512-jkfO28SqRww2EQNcCMDPhpF4fvsCEPqtY1pfRJtXpy0/AMrM0polGdGK2ek3FwfYsNDt3ZVvt2NElC28wNhVJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTQJQUq50VvK2n4HIVkoxsCcXmTar3aL8bS+5LtWH9dAiEAgX1NyFQiTFKW1KkXn1nyFqd8LG1sQl/7gozns7gSx3A="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/classer-1.2.0.tgz_1465367137279_0.17584239249117672"}},"1.3.0":{"name":"classer","version":"1.3.0","description":"A dependent-less module utility to create `new`-less class instances that double as operator functions","author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"files":["dist.es5","dist.es6"],"main":"index.js","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"dependencies":{},"devDependencies":{"babel-core":"^6.7.6","babel-preset-es2015":"^6.6.0","del":"^2.2.0","gulp":"^3.9.1","gulp-babel":"^6.1.2","gulp-debug":"^2.1.2","gulp-eslint":"^2.0.0","gulp-exclude-gitignore":"^1.0.0","gulp-istanbul":"^0.10.4","gulp-mocha":"^2.2.0","gulp-plumber":"^1.1.0","gulp-soda":"^0.3.0","gulp-sourcemaps":"^1.6.0","gulp-util":"^3.0.7","isparta":"^4.0.0"},"scripts":{"test":"gulp"},"license":"ISC","gitHead":"d875fd13ededd6e99c94038bad0d992c9af5437d","bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"homepage":"https://github.com/blake.regalia/classer#readme","_id":"classer@1.3.0","_shasum":"6d84f4d702e92ce164c952b4444b6b0ae3e7411f","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"blake.regalia","email":"blake.regalia@gmail.com"},"maintainers":[{"name":"blake.regalia","email":"blake.regalia@gmail.com"}],"dist":{"shasum":"6d84f4d702e92ce164c952b4444b6b0ae3e7411f","tarball":"https://registry.npmjs.org/classer/-/classer-1.3.0.tgz","integrity":"sha512-D8AyZbqMoPsJMKV3H0rCdllMfAoaMcW53PP81Cti8EAiFUfSy2YDZoSsHBpC2x1qW1LZ6Eam5kMUUzO6Y5Ou+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9RbTOUifjlZdjRNE6xUC0CNpMIVDe1KpBF3B7gQFJcQIgL1kYhAmA41Hiy5ASBk9vOZcLXubxMOeUx8xwUbxo0uU="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/classer-1.3.0.tgz_1465367687893_0.10678198863752186"}}},"homepage":"https://github.com/blake.regalia/classer#readme","keywords":["class","super","method","private","public","static"],"repository":{"type":"git","url":"git+https://github.com/blake.regalia/classer.git"},"author":{"name":"Blake Regalia","email":"blake.regalia@gmail.com"},"bugs":{"url":"https://github.com/blake.regalia/classer/issues"},"license":"ISC","readmeFilename":"README.md"}