From c5889dd497a10f74c060c39bf4659085a3aeebcd Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:18:37 +0100 Subject: [PATCH 01/11] Delete unused generated files --- dist/klassified.js | 732 ------------------------------------- dist/klassified.js.map | 1 - dist/klassified.min.js | 2 - dist/klassified.min.js.map | 1 - 4 files changed, 736 deletions(-) delete mode 100644 dist/klassified.js delete mode 100644 dist/klassified.js.map delete mode 100644 dist/klassified.min.js delete mode 100644 dist/klassified.min.js.map diff --git a/dist/klassified.js b/dist/klassified.js deleted file mode 100644 index 22109e2..0000000 --- a/dist/klassified.js +++ /dev/null @@ -1,732 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.klassified = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o "Woof Woof, hello Tintin" - * milou.getName(); // => "dog milou" - * - * @param{{}} spec - * @param{{}} my - * @return {object} - */ -function object(spec, my) { - spec = spec || {}; - my = my || {}; - - var that = {}; - - that.getClass = function () { - return object; - }; - - /** - * preInitialize is called by the framework at the beginning - * of object instantiation. - */ - my.preInitialize = function () {}; - - /** - * initialize is called by the framework upon object instantiation. - */ - my.initialize = function () {}; - - /** - * postInitialize is called by the framework at the end of - * object instantiation. - */ - my.postInitialize = function () {}; - - /** - * Throws an error because the method should have been overridden. - */ - my.subclassResponsibility = subclassResponsibility; - - /** - * Getter/Setter generation - */ - my.get = function (propName, getter) { - if (!getter) { - getter = function getter() { - return my[propName]; - }; - } - that["get" + capitalized(propName)] = getter; - }; - - my.set = function (propName, setter) { - if (!setter) { - setter = function setter(value) { - my[propName] = value; - return value; - }; - } - that["set" + capitalized(propName)] = setter; - }; - - // install extensions by hand for object, since we do not have the - // extension installation of the subclasses - that.getClass().extensions.forEach(function (extension) { - extension(that, my); - }); - - return that; -} - -/** - * Return an array of direct subclasses. - */ -object.subclasses = []; - -/** - * Return an array of all subclasses. - */ -object.allSubclasses = function () { - var allSubclasses = this.subclasses.slice(); - this.subclasses.forEach(function (klass) { - klass.allSubclasses().forEach(function (subclass) { - allSubclasses.push(subclass); - }); - }); - return allSubclasses; -}; - -/** - * Return all concrete subclasses. - */ -object.allConcreteSubclasses = function () { - var allConcreteSubclasses = this.subclasses.filter(function (klass) { - return !klass.isAbstract; - }); - - this.subclasses.forEach(function (klass) { - klass.allConcreteSubclasses().forEach(function (subclass) { - allConcreteSubclasses.push(subclass); - }); - }); - - return allConcreteSubclasses; -}; - -object.subclassResponsibility = subclassResponsibility; - -/** - * Return an array of all extensions of the class, see `object.extend`. - */ -object.extensions = []; - -var superCallRegex = /\bsuper\b/; - -/** - * Return a new subclass, and register it to the array of `subclasses`. - * - * @param{function} builder Function used to build new instances of the - * subclass. - */ -object.subclass = function (builder) { - var that = this; - - function klass(spec, my, notFinal) { - spec = spec || {}; - my = my || {}; - - if (klass.isAbstract && !notFinal) { - throwAbstractClassError(that); - } - - if (klass.isSingleton && !notFinal) { - throwSingletonClassError(that); - } - - var instance = that(spec, my, true); - - instance.getClass = function () { - return klass; - }; - - var superInstance = Object.assign({}, instance); - var superMy = Object.assign({}, my); - - klass.extensions.forEach(function (extension) { - extension(instance, my); - }); - - builder(instance, my); - - if (superCallRegex.test(builder)) { - installSuper(my, superMy, klass, "my"); - installSuper(instance, superInstance, klass, "that"); - } - - if (!notFinal) { - my.preInitialize(spec); - my.initialize(spec); - my.postInitialize(spec); - } - - return instance; - } - - klass.superclass = that; - klass.subclasses = []; - that.subclasses.push(klass); - - // static inheritance - klass.classBuilder = that.classBuilder; - klass.classBuilder(klass); - - return klass; -}; - -object.singletonSubclass = function (builder) { - var klass = this.subclass(builder); - var instance = klass(); - klass.isSingleton = true; - klass.instance = function () { - return instance; - }; - - return klass; -}; - -object.abstractSubclass = function (builder) { - var klass = this.subclass(builder); - klass.isAbstract = true; - return klass; -}; - -object.class = function (builder) { - var that = this; - - if (that === object) { - throw new Error("object class should not be extended."); - } - - var superClassBuilder = that.classBuilder; - that.classBuilder = function (klass) { - superClassBuilder(klass); - builder(klass); - }; - - that.classBuilder(that); -}; - -object.classBuilder = function (that) { - // TODO: use Object.assign? - that.class = object.class; - that.subclass = object.subclass; - that.singletonSubclass = object.singletonSubclass; - that.abstractSubclass = object.abstractSubclass; - that.allSubclasses = object.allSubclasses; - that.allConcreteSubclasses = object.allConcreteSubclasses; - that.subclassResponsibility = subclassResponsibility; - that.extend = object.extend; - that.extensions = []; -}; - -/** - * Mutate public functions of `obj` that make use of `super()` by binding - * `super` from within each public function of `obj` to the function in - * `proto`. - */ -function installSuper(obj, proto, klass, receiverName) { - methodsWithSuperCall(obj, proto, klass, receiverName).forEach(function (name) { - if (!obj[name].superInstalled) { - obj[name] = function (obj, fn, superFn) { - return function () { - - var tmp = obj.super; - obj.super = superFn; - var returnValue = fn.apply(obj, arguments); - obj.super = tmp; - - // We reached the top of the stack regarding super - // calls, so cleanup the namespace. - if (obj.super === undefined) { - delete obj.super; - } - - return returnValue; - }; - }(obj, obj[name], proto[name]); - obj[name].superInstalled = true; - } - }); -} - -/** - * Return the list of methods in `obj` that perform a supercall to `proto`. - * The list is cached in `klass`. - * - * `receiverName` is either "that" or "my". - */ -function methodsWithSuperCall(obj, proto, klass, receiverName) { - if (!klass.methodsWithSuperCall) { - Object.defineProperty(klass, "methodsWithSuperCall", { - enumerable: false, - writable: true, - value: {} - }); - } - - if (klass.methodsWithSuperCall[receiverName]) { - return klass.methodsWithSuperCall[receiverName]; - } - - klass.methodsWithSuperCall[receiverName] = Object.keys(obj).filter(function (name) { - return typeof proto[name] === "function" && typeof obj[name] === "function" && superCallRegex.test(obj[name]); - }); - - return klass.methodsWithSuperCall[receiverName]; -} - -/** - * Extend the class with new methods/properties. - * @param{function} builder takes the same arguments as - * `object.subclass`: `that`, `spec` and `my`. - */ -object.extend = function (builder) { - this.extensions.push(builder); -}; - -function throwAbstractClassError(klass) { - throw new Error("Cannot instantiate an abstract class"); -} - -function throwSingletonClassError(klass) { - throw new Error("Cannot create new instances of a singleton class, use `instance` instead."); -} - -/** - * Polyfill for Object.assign - */ -if (typeof Object.assign !== "function") { - (function () { - Object.assign = function (target) { - if (target === undefined || target === null) { - throw new TypeError("Cannot convert undefined or null to object"); - } - - var output = Object(target); - for (var index = 1; index < arguments.length; index++) { - var source = arguments[index]; - if (source !== undefined && source !== null) { - for (var nextKey in source) { - if (source.hasOwnProperty(nextKey)) { - output[nextKey] = source[nextKey]; - } - } - } - } - return output; - }; - })(); -} - -/** - * Helpers - */ - -function capitalized(string) { - return string[0].toUpperCase() + string.slice(1); -} - -/** - * Throw an error when a method should have been overridden in a concrete - * subclass. - */ -function subclassResponsibility() { - throw new Error("Subclass responsibility"); -} - -exports.default = object; - -},{}],4:[function(require,module,exports){ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _object = require("./object"); - -var _object2 = _interopRequireDefault(_object); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _object2.default.subclass(function (that, my) { - my.initialize = function (spec) { - my.super(spec); - my.instance = spec.instance; - - my.accessListeners = {}; - my.changeListeners = {}; - }; - - that.onAccess = function (propName, listener) { - if (!my.accessListeners[propName]) { - my.accessListeners[propName] = []; - } - if (my.accessListeners[propName].indexOf(listener) === -1) { - my.accessListeners[propName].push(listener); - } - }; - - that.onChange = function (propName, listener) { - if (!my.changeListeners[propName]) { - my.changeListeners[propName] = []; - } - if (my.changeListeners[propName].indexOf(listener) === -1) { - my.changeListeners[propName].push(listener); - } - }; - - that.emitAccess = function (propName) { - if (!my.accessListeners[propName]) { - return; - } - - my.accessListeners[propName].forEach(function (listener) { - listener(my.instance, propName); - }); - }; - - that.emitChange = function (propName, value) { - if (!my.changeListeners[propName]) { - return; - } - - my.changeListeners[propName].forEach(function (listener) { - listener(my.instance, propName, value); - }); - }; -}); - -},{"./object":3}],5:[function(require,module,exports){ -"use strict"; - -var _object = require("./object"); - -var _object2 = _interopRequireDefault(_object); - -var _propertiesEventEmitter = require("./propertiesEventEmitter"); - -var _propertiesEventEmitter2 = _interopRequireDefault(_propertiesEventEmitter); - -var _globalPropertyEventEmitter = require("./globalPropertyEventEmitter"); - -var _globalPropertyEventEmitter2 = _interopRequireDefault(_globalPropertyEventEmitter); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * A property represent an observable attribute of an object, with optional - * getters and setters. - * - * @param{string} spec.owner - Instance on which the property is installed. - * @param{string} spec.name - Name of the property, which value of the same - * name is installed on `my` on the instance. - */ -_object2.default.extend(function (that, my) { - that.onPropertyAccess = function (propName, listener) { - var emitter = my.ensurePropertiesEventEmitter(); - emitter.onAccess(propName, listener); - }; - - that.onPropertyChange = function (propName, listener) { - var emitter = my.ensurePropertiesEventEmitter(); - emitter.onChange(propName, listener); - }; - - my.property = function (propName, initialValue) { - var value = initialValue; - Object.defineProperty(my, propName, { - configurable: true, - enumerable: true, - get: function get() { - emitPropertyAccess(propName); - return value; - }, - set: function set(newValue) { - value = newValue; - emitPropertyChange(propName, value); - } - }); - }; - - my.ensurePropertiesEventEmitter = function () { - if (my.propertiesEventEmitter) { - return my.propertiesEventEmitter; - } - - my.propertiesEventEmitter = (0, _propertiesEventEmitter2.default)({ - instance: that - }); - - return my.propertiesEventEmitter; - }; - - function emitPropertyAccess(propName) { - var emitter = my.ensurePropertiesEventEmitter(); - emitter.emitAccess(propName); - _globalPropertyEventEmitter2.default.instance().emitAccess(that, propName); - } - - function emitPropertyChange(propName, value) { - var emitter = my.ensurePropertiesEventEmitter(); - emitter.emitChange(propName, value); - _globalPropertyEventEmitter2.default.instance().emitChange(that, propName, value); - } -}); - -},{"./globalPropertyEventEmitter":1,"./object":3,"./propertiesEventEmitter":4}],6:[function(require,module,exports){ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _object = require("./object"); - -var _object2 = _interopRequireDefault(_object); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * `testCase` implements an abstract test class, using Jasmine behind the - * scenes. - * - * All subclasses of testCase are singletons (so that one instance is - * created when the class is loaded). - */ -var testCase = _object2.default.abstractSubclass(function (that, my) { - - my.initialize = function (spec) { - my.super(spec); - var tests = my.registeredTests(); - suite(my.name(), function () { - beforeEach(my.beforeEach); - afterEach(my.afterEach); - beforeAll(my.beforeAll); - afterAll(my.afterAll); - tests.forEach(function (test) { - it(test.name, test.fn); - }); - }); - }; - - my.force = function () { - return false; - }; - - my.beforeEach = function () {}; - my.beforeAll = function () {}; - my.afterEach = function () {}; - my.afterAll = function () {}; - - my.name = function () { - return my.subclassResponsibility(); - }; - - my.expect = expect; - my.spyOn = spyOn; - - my.registeredTests = function () { - var result = []; - var testRegex = /Test$/; - - Object.keys(my).forEach(function (name) { - if (typeof my[name] === "function" && testRegex.test(name)) { - result.push({ - name: my.buildTestName(name), - fn: my[name] - }); - } - }); - - return result; - }; - - my.buildTestName = function (name) { - name = name.slice(0, -4); - var regexp = /([A-Z][^A-Z]*)/g; - name = name.replace(regexp, " $1"); - name = name.toLowerCase(); - return name; - }; - - function suite(name, callback) { - if (my.force()) { - fdescribe(name, function () { - // eslint-disable-line jasmine/no-focused-tests - callback(); - }); - } else { - describe(name, function () { - callback(); - }); - } - } -}); /* eslint jasmine/no-global-setup: 0 */ - - -testCase.class(function (that) { - that.isTestCase = function () { - return true; - }; - - // All test classes are singletons. - // TODO: Refactor with a super call when we"ll have super on class-side. - that.subclass = function (superSubclass) { - return function (builder, options) { - var klass = superSubclass.apply(that, [builder]); - - if (options && options.isAbstract) { - return klass; - } - - var instance = klass(); - klass.isSingleton = true; - klass.instance = function () { - return instance; - }; - - return klass; - }; - }(that.subclass); - - // We need this to ensure we don't have abstract & singleton classes - that.abstractSubclass = function (superAbstractSubclass) { - return function (builder) { - var klass = this.subclass(builder, { isAbstract: true }); - klass.isAbstract = true; - return klass; - }; - }(that.abstractSubclass); -}); - -exports.default = testCase; - -},{"./object":3}]},{},[2])(2) -}); - -//# sourceMappingURL=klassified.js.map diff --git a/dist/klassified.js.map b/dist/klassified.js.map deleted file mode 100644 index e42612a..0000000 --- a/dist/klassified.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/globalPropertyEventEmitter.js","src/klassified.js","src/object.js","src/propertiesEventEmitter.js","src/property.js","src/testCase.js"],"names":[],"mappings":"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","file":"klassified.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o \"Woof Woof, hello Tintin\"\n * milou.getName(); // => \"dog milou\"\n *\n * @param{{}} spec\n * @param{{}} my\n * @return {object}\n */\nfunction object(spec, my) {\n\tspec = spec || {};\n\tmy = my || {};\n\n\tlet that = {};\n\n\tthat.getClass = function() {\n\t\treturn object;\n\t};\n\n\t/**\n\t * preInitialize is called by the framework at the beginning\n\t * of object instantiation.\n\t */\n\tmy.preInitialize = function() {};\n\n\t/**\n\t * initialize is called by the framework upon object instantiation.\n\t */\n\tmy.initialize = function() {};\n\n\t/**\n\t * postInitialize is called by the framework at the end of\n\t * object instantiation.\n\t */\n\tmy.postInitialize = function() {};\n\n\t/**\n\t * Throws an error because the method should have been overridden.\n\t */\n\tmy.subclassResponsibility = subclassResponsibility;\n\n\t/**\n\t * Getter/Setter generation\n\t */\n\tmy.get = function(propName, getter) {\n\t\tif (!getter) {\n\t\t\tgetter = function() {\n\t\t\t\treturn my[propName];\n\t\t\t};\n\t\t}\n\t\tthat[\"get\" + capitalized(propName)] = getter;\n\t};\n\n\tmy.set = function(propName, setter) {\n\t\tif (!setter) {\n\t\t\tsetter = function(value) {\n\t\t\t\tmy[propName] = value;\n\t\t\t\treturn value;\n\t\t\t};\n\t\t}\n\t\tthat[\"set\" + capitalized(propName)] = setter;\n\t};\n\n\t// install extensions by hand for object, since we do not have the\n\t// extension installation of the subclasses\n\tthat.getClass().extensions.forEach(function(extension) {\n\t\textension(that, my);\n\t});\n\n\treturn that;\n}\n\n/**\n * Return an array of direct subclasses.\n */\nobject.subclasses = [];\n\n/**\n * Return an array of all subclasses.\n */\nobject.allSubclasses = function() {\n\tlet allSubclasses = this.subclasses.slice();\n\tthis.subclasses.forEach(function(klass) {\n\t\tklass.allSubclasses().forEach(function(subclass) {\n\t\t\tallSubclasses.push(subclass);\n\t\t});\n\t});\n\treturn allSubclasses;\n};\n\n/**\n * Return all concrete subclasses.\n */\nobject.allConcreteSubclasses = function() {\n\tlet allConcreteSubclasses = this.subclasses.filter(function(klass) {\n\t\treturn !klass.isAbstract;\n\t});\n\n\tthis.subclasses.forEach(function(klass) {\n\t\tklass.allConcreteSubclasses().forEach(function(subclass) {\n\t\t\tallConcreteSubclasses.push(subclass);\n\t\t});\n\t});\n\n\treturn allConcreteSubclasses;\n};\n\nobject.subclassResponsibility = subclassResponsibility;\n\n/**\n * Return an array of all extensions of the class, see `object.extend`.\n */\nobject.extensions = [];\n\nlet superCallRegex = /\\bsuper\\b/;\n\n/**\n * Return a new subclass, and register it to the array of `subclasses`.\n *\n * @param{function} builder Function used to build new instances of the\n * subclass.\n */\nobject.subclass = function(builder) {\n\tlet that = this;\n\n\tfunction klass(spec, my, notFinal) {\n\t\tspec = spec || {};\n\t\tmy = my || {};\n\n\t\tif (klass.isAbstract && !notFinal) {\n\t\t\tthrowAbstractClassError(that);\n\t\t}\n\n\t\tif (klass.isSingleton && !notFinal) {\n\t\t\tthrowSingletonClassError(that);\n\t\t}\n\n\t\tlet instance = that(spec, my, true);\n\n\t\tinstance.getClass = function() {\n\t\t\treturn klass;\n\t\t};\n\n\t\tlet superInstance = Object.assign({}, instance);\n\t\tlet superMy = Object.assign({}, my);\n\n\t\tklass.extensions.forEach(function(extension) {\n\t\t\textension(instance, my);\n\t\t});\n\n\t\tbuilder(instance, my);\n\n\t\tif (superCallRegex.test(builder)) {\n\t\t\tinstallSuper(my, superMy, klass, \"my\");\n\t\t\tinstallSuper(instance, superInstance, klass, \"that\");\n\t\t}\n\n\t\tif (!notFinal) {\n\t\t\tmy.preInitialize(spec);\n\t\t\tmy.initialize(spec);\n\t\t\tmy.postInitialize(spec);\n\t\t}\n\n\t\treturn instance;\n\t}\n\n\tklass.superclass = that;\n\tklass.subclasses = [];\n\tthat.subclasses.push(klass);\n\n\t// static inheritance\n\tklass.classBuilder = that.classBuilder;\n\tklass.classBuilder(klass);\n\n\treturn klass;\n};\n\nobject.singletonSubclass = function(builder) {\n\tlet klass = this.subclass(builder);\n\tlet instance = klass();\n\tklass.isSingleton = true;\n\tklass.instance = function() {\n\t\treturn instance;\n\t};\n\n\treturn klass;\n};\n\nobject.abstractSubclass = function(builder) {\n\tlet klass = this.subclass(builder);\n\tklass.isAbstract = true;\n\treturn klass;\n};\n\nobject.class = function(builder) {\n\tlet that = this;\n\n\tif (that === object) {\n\t\tthrow new Error(\"object class should not be extended.\");\n\t}\n\n\tlet superClassBuilder = that.classBuilder;\n\tthat.classBuilder = function(klass) {\n\t\tsuperClassBuilder(klass);\n\t\tbuilder(klass);\n\t};\n\n\tthat.classBuilder(that);\n};\n\nobject.classBuilder = function(that) {\n\t// TODO: use Object.assign?\n\tthat.class = object.class;\n\tthat.subclass = object.subclass;\n\tthat.singletonSubclass = object.singletonSubclass;\n\tthat.abstractSubclass = object.abstractSubclass;\n\tthat.allSubclasses = object.allSubclasses;\n\tthat.allConcreteSubclasses = object.allConcreteSubclasses;\n\tthat.subclassResponsibility = subclassResponsibility;\n\tthat.extend = object.extend;\n\tthat.extensions = [];\n};\n\n/**\n * Mutate public functions of `obj` that make use of `super()` by binding\n * `super` from within each public function of `obj` to the function in\n * `proto`.\n */\nfunction installSuper(obj, proto, klass, receiverName) {\n\tmethodsWithSuperCall(obj, proto, klass, receiverName).forEach(function(name) {\n\t\tif (!obj[name].superInstalled) {\n\t\t\tobj[name] = (function(obj, fn, superFn) {\n\t\t\t\treturn function() {\n\n\t\t\t\t\tlet tmp = obj.super;\n\t\t\t\t\tobj.super = superFn;\n\t\t\t\t\tlet returnValue = fn.apply(obj, arguments);\n\t\t\t\t\tobj.super = tmp;\n\n\t\t\t\t\t// We reached the top of the stack regarding super\n\t\t\t\t\t// calls, so cleanup the namespace.\n\t\t\t\t\tif (obj.super === undefined) {\n\t\t\t\t\t\tdelete obj.super;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn returnValue;\n\t\t\t\t};\n\t\t\t})(obj, obj[name], proto[name]);\n\t\t\tobj[name].superInstalled = true;\n\t\t}\n\t});\n}\n\n/**\n * Return the list of methods in `obj` that perform a supercall to `proto`.\n * The list is cached in `klass`.\n *\n * `receiverName` is either \"that\" or \"my\".\n */\nfunction methodsWithSuperCall(obj, proto, klass, receiverName) {\n\tif (!klass.methodsWithSuperCall) {\n\t\tObject.defineProperty(klass, \"methodsWithSuperCall\", {\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: {}\n\t\t});\n\t}\n\n\tif (klass.methodsWithSuperCall[receiverName]) {\n\t\treturn klass.methodsWithSuperCall[receiverName];\n\t}\n\n\tklass.methodsWithSuperCall[receiverName] = Object.keys(obj).filter(function(name) {\n\t\treturn typeof(proto[name]) === \"function\" &&\n\t\t\ttypeof(obj[name]) === \"function\" &&\n\t\t\tsuperCallRegex.test(obj[name]);\n\t});\n\n\treturn klass.methodsWithSuperCall[receiverName];\n}\n\n/**\n * Extend the class with new methods/properties.\n * @param{function} builder takes the same arguments as\n * `object.subclass`: `that`, `spec` and `my`.\n */\nobject.extend = function(builder) {\n\tthis.extensions.push(builder);\n};\n\nfunction throwAbstractClassError(klass) {\n\tthrow new Error(\"Cannot instantiate an abstract class\");\n}\n\nfunction throwSingletonClassError(klass) {\n\tthrow new Error(\"Cannot create new instances of a singleton class, use `instance` instead.\");\n}\n\n/**\n * Polyfill for Object.assign\n */\nif (typeof Object.assign !== \"function\") {\n\t(function() {\n\t\tObject.assign = function(target) {\n\t\t\tif (target === undefined || target === null) {\n\t\t\t\tthrow new TypeError(\"Cannot convert undefined or null to object\");\n\t\t\t}\n\n\t\t\tlet output = Object(target);\n\t\t\tfor (let index = 1; index < arguments.length; index++) {\n\t\t\t\tlet source = arguments[index];\n\t\t\t\tif (source !== undefined && source !== null) {\n\t\t\t\t\tfor (let nextKey in source) {\n\t\t\t\t\t\tif (source.hasOwnProperty(nextKey)) {\n\t\t\t\t\t\t\toutput[nextKey] = source[nextKey];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t};\n\t})();\n}\n\n/**\n * Helpers\n */\n\nfunction capitalized(string) {\n\treturn string[0].toUpperCase() + string.slice(1);\n}\n\n/**\n * Throw an error when a method should have been overridden in a concrete\n * subclass.\n */\nfunction subclassResponsibility() {\n\tthrow new Error(\"Subclass responsibility\");\n}\n\nexport default object;\n","import object from \"./object\";\n\nexport default object.subclass(function(that, my) {\n\tmy.initialize = function(spec) {\n\t\tmy.super(spec);\n\t\tmy.instance = spec.instance;\n\n\t\tmy.accessListeners = {};\n\t\tmy.changeListeners = {};\n\t};\n\n\tthat.onAccess = function(propName, listener) {\n\t\tif (!my.accessListeners[propName]) {\n\t\t\tmy.accessListeners[propName] = [];\n\t\t}\n\t\tif (my.accessListeners[propName].indexOf(listener) === -1) {\n\t\t\tmy.accessListeners[propName].push(listener);\n\t\t}\n\t};\n\n\tthat.onChange = function(propName, listener) {\n\t\tif (!my.changeListeners[propName]) {\n\t\t\tmy.changeListeners[propName] = [];\n\t\t}\n\t\tif (my.changeListeners[propName].indexOf(listener) === -1) {\n\t\t\tmy.changeListeners[propName].push(listener);\n\t\t}\n\t};\n\n\tthat.emitAccess = function(propName) {\n\t\tif (!my.accessListeners[propName]) {\n\t\t\treturn;\n\t\t}\n\n\t\tmy.accessListeners[propName].forEach(function(listener) {\n\t\t\tlistener(my.instance, propName);\n\t\t});\n\t};\n\n\tthat.emitChange = function(propName, value) {\n\t\tif (!my.changeListeners[propName]) {\n\t\t\treturn;\n\t\t}\n\n\t\tmy.changeListeners[propName].forEach(function(listener) {\n\t\t\tlistener(my.instance, propName, value);\n\t\t});\n\t};\n});\n","import object from \"./object\";\nimport propertiesEventEmitter from \"./propertiesEventEmitter\";\nimport globalPropertyEventEmitter from \"./globalPropertyEventEmitter\";\n\n/**\n * A property represent an observable attribute of an object, with optional\n * getters and setters.\n *\n * @param{string} spec.owner - Instance on which the property is installed.\n * @param{string} spec.name - Name of the property, which value of the same\n * name is installed on `my` on the instance.\n */\nobject.extend(function(that, my) {\n\tthat.onPropertyAccess = function(propName, listener) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.onAccess(propName, listener);\n\t};\n\n\tthat.onPropertyChange = function(propName, listener) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.onChange(propName, listener);\n\t};\n\n\tmy.property = function(propName, initialValue) {\n\t\tlet value = initialValue;\n\t\tObject.defineProperty(my, propName, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\temitPropertyAccess(propName);\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset: function(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\temitPropertyChange(propName, value);\n\t\t\t}\n\t\t});\n\t};\n\n\tmy.ensurePropertiesEventEmitter = function() {\n\t\tif (my.propertiesEventEmitter) {\n\t\t\treturn my.propertiesEventEmitter;\n\t\t}\n\n\t\tmy.propertiesEventEmitter = propertiesEventEmitter({\n\t\t\tinstance: that\n\t\t});\n\n\t\treturn my.propertiesEventEmitter;\n\t};\n\n\tfunction emitPropertyAccess(propName) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.emitAccess(propName);\n\t\tglobalPropertyEventEmitter.instance().emitAccess(that, propName);\n\t}\n\n\tfunction emitPropertyChange(propName, value) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.emitChange(propName, value);\n\t\tglobalPropertyEventEmitter.instance().emitChange(that, propName, value);\n\t}\n});\n","/* eslint jasmine/no-global-setup: 0 */\nimport object from \"./object\";\n\n/**\n * `testCase` implements an abstract test class, using Jasmine behind the\n * scenes.\n *\n * All subclasses of testCase are singletons (so that one instance is\n * created when the class is loaded).\n */\nlet testCase = object.abstractSubclass(function(that, my) {\n\n\tmy.initialize = function(spec) {\n\t\tmy.super(spec);\n\t\tlet tests = my.registeredTests();\n\t\tsuite(my.name(), function() {\n\t\t\tbeforeEach(my.beforeEach);\n\t\t\tafterEach(my.afterEach);\n\t\t\tbeforeAll(my.beforeAll);\n\t\t\tafterAll(my.afterAll);\n\t\t\ttests.forEach(function(test) {\n\t\t\t\tit(test.name, test.fn);\n\t\t\t});\n\t\t});\n\t};\n\n\tmy.force = function() {\n\t\treturn false;\n\t};\n\n\tmy.beforeEach = function() {};\n\tmy.beforeAll = function() {};\n\tmy.afterEach = function() {};\n\tmy.afterAll = function() {};\n\n\tmy.name = function() {\n\t\treturn my.subclassResponsibility();\n\t};\n\n\tmy.expect = expect;\n\tmy.spyOn = spyOn;\n\n\tmy.registeredTests = function() {\n\t\tlet result = [];\n\t\tlet testRegex = /Test$/;\n\n\t\tObject.keys(my).forEach(function(name) {\n\t\t\tif (typeof my[name] === \"function\" &&\n\t\t\t\ttestRegex.test(name)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: my.buildTestName(name),\n\t\t\t\t\tfn: my[name]\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t};\n\n\tmy.buildTestName = function(name) {\n\t\tname = name.slice(0, -4);\n\t\tlet regexp = /([A-Z][^A-Z]*)/g;\n\t\tname = name.replace(regexp, \" $1\");\n\t\tname = name.toLowerCase();\n\t\treturn name;\n\t};\n\n\tfunction suite(name, callback) {\n\t\tif (my.force()) {\n\t\t\tfdescribe(name, function() { // eslint-disable-line jasmine/no-focused-tests\n\t\t\t\tcallback();\n\t\t\t});\n\t\t} else {\n\t\t\tdescribe(name, function() {\n\t\t\t\tcallback();\n\t\t\t});\n\t\t}\n\t}\n});\n\ntestCase.class(function(that) {\n\tthat.isTestCase = function() {\n\t\treturn true;\n\t};\n\n\t// All test classes are singletons.\n\t// TODO: Refactor with a super call when we\"ll have super on class-side.\n\tthat.subclass = (function(superSubclass) {\n\t\treturn function(builder, options) {\n\t\t\tlet klass = superSubclass.apply(that, [builder]);\n\n\t\t\tif (options && options.isAbstract) {\n\t\t\t\treturn klass;\n\t\t\t}\n\n\t\t\tlet instance = klass();\n\t\t\tklass.isSingleton = true;\n\t\t\tklass.instance = function() {\n\t\t\t\treturn instance;\n\t\t\t};\n\n\t\t\treturn klass;\n\t\t};\n\t})(that.subclass);\n\n\t// We need this to ensure we don't have abstract & singleton classes\n\tthat.abstractSubclass = (function(superAbstractSubclass) {\n\t\treturn function(builder) {\n\t\t\tlet klass = this.subclass(builder, { isAbstract: true });\n\t\t\tklass.isAbstract = true;\n\t\t\treturn klass;\n\t\t};\n\n\t})(that.abstractSubclass);\n});\n\nexport default testCase;\n"],"preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvZ2xvYmFsUHJvcGVydHlFdmVudEVtaXR0ZXIuanMiLCJzcmMva2xhc3NpZmllZC5qcyIsInNyYy9vYmplY3QuanMiLCJzcmMvcHJvcGVydGllc0V2ZW50RW1pdHRlci5qcyIsInNyYy9wcm9wZXJ0eS5qcyIsInNyYy90ZXN0Q2FzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQ0FBOzs7Ozs7QUFFQTs7Ozs7a0JBS2UsaUJBQU8saUJBQVAsQ0FBeUIsVUFBUyxJQUFULEVBQWUsRUFBZixFQUFtQjtBQUMxRCxJQUFHLFVBQUgsR0FBZ0IsVUFBUyxJQUFULEVBQWU7QUFDOUIsS0FBRyxLQUFILENBQVMsSUFBVDtBQUNBLEtBQUcsZUFBSCxHQUFxQixFQUFyQjtBQUNBLEtBQUcsZUFBSCxHQUFxQixFQUFyQjtBQUNBLEVBSkQ7O0FBTUEsTUFBSyxRQUFMLEdBQWdCLFVBQVMsUUFBVCxFQUFtQjtBQUNsQyxLQUFHLGVBQUgsQ0FBbUIsSUFBbkIsQ0FBd0IsUUFBeEI7QUFDQSxFQUZEOztBQUlBLE1BQUssUUFBTCxHQUFnQixVQUFTLFFBQVQsRUFBbUI7QUFDbEMsS0FBRyxlQUFILENBQW1CLElBQW5CLENBQXdCLFFBQXhCO0FBQ0EsRUFGRDs7QUFJQSxNQUFLLFVBQUwsR0FBa0IsVUFBUyxRQUFULEVBQW1CLFFBQW5CLEVBQTZCO0FBQzlDLEtBQUcsZUFBSCxDQUFtQixPQUFuQixDQUEyQixVQUFTLFFBQVQsRUFBbUI7QUFDN0MsWUFBUyxRQUFULEVBQW1CLFFBQW5CO0FBQ0EsR0FGRDtBQUdBLEVBSkQ7O0FBTUEsTUFBSyxVQUFMLEdBQWtCLFVBQVMsUUFBVCxFQUFtQixRQUFuQixFQUE2QixLQUE3QixFQUFvQztBQUNyRCxLQUFHLGVBQUgsQ0FBbUIsT0FBbkIsQ0FBMkIsVUFBUyxRQUFULEVBQW1CO0FBQzdDLFlBQVMsUUFBVCxFQUFtQixRQUFuQixF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SUFBVCxFQUFlLFlBQVc7QUFDekI7QUFDQSxJQUZEO0FBR0E7QUFDRDtBQUNELENBcEVjLENBQWYsQyxDQVZBOzs7QUFnRkEsU0FBUyxLQUFULENBQWUsVUFBUyxJQUFULEVBQWU7QUFDN0IsTUFBSyxVQUFMLEdBQWtCLFlBQVc7QUFDNUIsU0FBTyxJQUFQO0FBQ0EsRUFGRDs7QUFJQTtBQUNBO0FBQ0EsTUFBSyxRQUFMLEdBQWlCLFVBQVMsYUFBVCxFQUF3QjtBQUN4QyxTQUFPLFVBQVMsT0FBVCxFQUFrQixPQUFsQixFQUEyQjtBQUNqQyxPQUFJLFFBQVEsY0FBYyxLQUFkLENBQW9CLElBQXBCLEVBQTBCLENBQUMsT0FBRCxDQUExQixDQUFaOztBQUVBLE9BQUksV0FBVyxRQUFRLFVBQXZCLEVBQW1DO0FBQ2xDLFdBQU8sS0FBUDtBQUNBOztBQUVELE9BQUksV0FBVyxPQUFmO0FBQ0EsU0FBTSxXQUFOLEdBQW9CLElBQXBCO0FBQ0EsU0FBTSxRQUFOLEdBQWlCLFlBQVc7QUFDM0IsV0FBTyxRQUFQO0FBQ0EsSUFGRDs7QUFJQSxVQUFPLEtBQVA7QUFDQSxHQWREO0FBZUEsRUFoQmUsQ0FnQmIsS0FBSyxRQWhCUSxDQUFoQjs7QUFrQkE7QUFDQSxNQUFLLGdCQUFMLEdBQXlCLFVBQVMscUJBQVQsRUFBZ0M7QUFDeEQsU0FBTyxVQUFTLE9BQVQsRUFBa0I7QUFDeEIsT0FBSSxRQUFRLEtBQUssUUFBTCxDQUFjLE9BQWQsRUFBdUIsRUFBRSxZQUFZLElBQWQsRUFBdkIsQ0FBWjtBQUNBLFNBQU0sVUFBTixHQUFtQixJQUFuQjtBQUNBLFVBQU8sS0FBUDtBQUNBLEdBSkQ7QUFNQSxFQVB1QixDQU9yQixLQUFLLGdCQVBnQixDQUF4QjtBQVFBLENBbENEOztrQkFvQ2UsUSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJpbXBvcnQgb2JqZWN0IGZyb20gXCIuL29iamVjdFwiO1xuXG4vKipcbiAqIENlbnRyYWwgcHJvcGVydHkgZXZlbnRzIGVtaXR0ZXIuXG4gKlxuICogQWxsIHByb3BlcnRpZXMgd2lsbCB0cmlnZ2VyIGV2ZW50cyB3aGVuIGFjY2Vzc2VkIG9yIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IG9iamVjdC5zaW5nbGV0b25TdWJjbGFzcyhmdW5jdGlvbih0aGF0LCBteSkge1xuXHRteS5pbml0aWFsaXplID0gZnVuY3Rpb24oc3BlYykge1xuXHRcdG15LnN1cGVyKHNwZWMpO1xuXHRcdG15LmFjY2Vzc0xpc3RlbmVycyA9IFtdO1xuXHRcdG15LmNoYW5nZUxpc3RlbmVycyA9IFtdO1xuXHR9O1xuXG5cdHRoYXQub25BY2Nlc3MgPSBmdW5jdGlvbihsaXN0ZW5lcikge1xuXHRcdG15LmFjY2Vzc0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcblx0fTtcblxuXHR0aGF0Lm9uQ2hhbmdlID0gZnVuY3Rpb24obGlzdGVuZXIpIHtcblx0XHRteS5jaGFuZ2VMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG5cdH07XG5cblx0dGhhdC5lbWl0QWNjZXNzID0gZnVuY3Rpb24oaW5zdGFuY2UsIHByb3BOYW1lKSB7XG5cdFx0bXkuYWNjZXNzTGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcblx0XHRcdGxpc3RlbmVyKGluc3RhbmNlLCBwcm9wTmFtZSk7XG5cdFx0fSk7XG5cdH07XG5cblx0dGhhdC5lbWl0Q2hhbmdlID0gZnVuY3Rpb24oaW5zdGFuY2UsIHByb3BOYW1lLCB2YWx1ZSkge1xuXHRcdG15LmNoYW5nZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG5cdFx0XHRsaXN0ZW5lcihpbnN0YW5jZSwgcHJvcE5hbWUsIHZhbHVlKTtcblx0XHR9KTtcblx0fTtcbn0pO1xuIiwiaW1wb3J0IG9iamVjdCBmcm9tIFwiLi9vYmplY3RcIjtcbmltcG9ydCB0ZXN0Q2FzZSBmcm9tIFwiLi90ZXN0Q2FzZVwiO1xuaW1wb3J0IHByb3BlcnR5RXZlbnRFbWl0dGVyIGZyb20gXCIuL2dsb2JhbFByb3BlcnR5RXZlbnRFbWl0dGVyXCI7XG5pbXBvcnQgXCIuL3Byb3BlcnR5XCI7XG5cbmV4cG9ydCB7XG5cdG9iamVjdCxcblx0dGVzdENhc2UsXG5cdHByb3BlcnR5RXZlbnRFbWl0dGVyXG59O1xuXG5leHBvcnQgZGVmYXVsdCB7XG5cdG9iamVjdCxcblx0dGVzdENhc2UsXG5cdHByb3BlcnR5RXZlbnRFbWl0dGVyXG59O1xuIiwiLyoqXG4gKiBgb2JqZWN0YCBpcyB0aGUgYmFzZSBjbGFzcyBvZiB0aGUgb2JqZWN0IG1vZGVsLlxuICogSXQgcHJvdmlkZXMgZmFjaWxpdGllcyB0byBjcmVhdGUgc3ViY2xhc3NlcyBhbmQgY29tbW9uIG1ldGhvZHMuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqXG4gKiBDcmVhdGluZyBzdWJjbGFzc2VzICYgdXNpbmcgaW5oZXJpdGFuY2U6XG4gKlxuICogICAgbGV0IGFuaW1hbCA9IG9iamVjdC5zdWJjbGFzcyhmdW5jdGlvbih0aGF0LCBteSkge1xuICpcbiAqICAgICAgICBteS5pbml0aWFsaXplID0gZnVuY3Rpb24oc3BlYykge1xuICogICAgICAgICAgICBteS5zdXBlcigpO1xuICogICAgICAgICAgICBteS5uYW1lID0gc3BlYy5uYW1lO1xuICogICAgICAgIH07XG4gKlxuICogICAgICAgIHRoYXQuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICogICAgICAgICAgICByZXR1cm4gbXkubmFtZTtcbiAqICAgICAgICB9O1xuICpcbiAqICAgICAgICB0aGF0LnNheSA9IGZ1bmN0aW9uKHNvbWV0aGluZykge1xuICogICAgICAgICAgICBteS5zdWJjbGFzc1Jlc3BvbnNpYmlsaXR5KCk7XG4gKiAgICAgICAgfTtcbiAqICAgIH0pO1xuICpcbiAqXG4gKiAgICBsZXQgZG9nID0gYW5pbWFsLnN1YmNsYXNzKGZ1bmN0aW9uKHRoYXQsIG15KSB7XG4gKlxuICogICAgICAgIHRoYXQuZ2V0TmFtZSA9IGZ1bmN0aW9uKCkge1xuICogICAgICAgICAgICByZXR1cm4gXCJkb2cgXCIgKyB0aGF0LnN1cGVyKCk7XG4gKiAgICAgICAgfTtcbiAqXG4gKiAgICAgICAgdGhhdC5zYXkgPSBmdW5jdGlvbihzb21ldGhpbmcpIHtcbiAqICAgICAgICAgICAgcmV0dXJuIFwiV29vZiBXb29mLCBcIiArIHNvbWV0aGluZztcbiAqICAgICAgICB9O1xuICogICAgfSk7XG4gKlxuICogQ3JlYXRpbmcgaW5zdGFuY2VzOlxuICpcbiAqICAgIGxldCBtaWxvdSA9IGRvZyh7bmFtZTogbWlsb3V9KTtcbiAqICAgIG1pbG91LnNheShcImhlbGxvIFRpbnRpblwiKTsgOzsgPT4gXCJXb29mIFdvb2YsIGhlbGxvIFRpbnRpblwiXG4gKiAgICBtaWxvdS5nZXROYW1lKCk7IC8vID0+IFwiZG9nIG1pbG91XCJcbiAqXG4gKiBAcGFyYW17e319IHNwZWNcbiAqIEBwYXJhbXt7fX0gbXlcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZnVuY3Rpb24gb2JqZWN0KHNwZWMsIG15KSB7XG5cdHNwZWMgPSBzcGVjIHx8IHt9O1xuXHRteSA9IG15IHx8IHt9O1xuXG5cdGxldCB0aGF0ID0ge307XG5cblx0dGhhdC5nZXRDbGFzcyA9IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBvYmplY3Q7XG5cdH07XG5cblx0LyoqXG5cdCAqIHByZUluaXRpYWxpemUgaXMgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgYXQgdGhlIGJlZ2lubmluZ1xuXHQgKiBvZiBvYmplY3QgaW5zdGFudGlhdGlvbi5cblx0ICovXG5cdG15LnByZUluaXRpYWxpemUgPSBmdW5jdGlvbigpIHt9O1xuXG5cdC8qKlxuXHQgKiBpbml0aWFsaXplIGlzIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrIHVwb24gb2JqZWN0IGluc3RhbnRpYXRpb24uXG5cdCAqL1xuXHRteS5pbml0aWFsaXplID0gZnVuY3Rpb24oKSB7fTtcblxuXHQvKipcblx0ICogcG9zdEluaXRpYWxpemUgaXMgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgYXQgdGhlIGVuZCBvZlxuXHQgKiBvYmplY3QgaW5zdGFudGlhdGlvbi5cblx0ICovXG5cdG15LnBvc3RJbml0aWFsaXplID0gZnVuY3Rpb24oKSB7fTtcblxuXHQvKipcblx0ICogVGhyb3dzIGFuIGVycm9yIGJlY2F1c2UgdGhlIG1ldGhvZCBzaG91bGQgaGF2ZSBiZWVuIG92ZXJyaWRkZW4uXG5cdCAqL1xuXHRteS5zdWJjbGFzc1Jlc3BvbnNpYmlsaXR5ID0gc3ViY2xhc3NSZXNwb25zaWJpbGl0eTtcblxuXHQvKipcblx0ICogR2V0dGVyL1NldHRlciBnZW5lcmF0aW9uXG5cdCAqL1xuXHRteS5nZXQgPSBmdW5jdGlvbihwcm9wTmFtZSwgZ2V0dGVyKSB7XG5cdFx0aWYgKCFnZXR0ZXIpIHtcblx0XHRcdGdldHRlciA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbXlbcHJvcE5hbWVdO1xuXHRcdFx0fTtcblx0XHR9XG5cdFx0dGhhdFtcImdldFwiICsgY2FwaXRhbGl6ZWQocHJvcE5hbWUpXSA9IGdldHRlcjtcblx0fTtcblxuXHRteS5zZXQgPSBmdW5jdGlvbihwcm9wTmFtZSwgc2V0dGVyKSB7XG5cdFx0aWYgKCFzZXR0ZXIpIHtcblx0XHRcdHNldHRlciA9IGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0XHRcdG15W3Byb3BOYW1lXSA9IHZhbHVlO1xuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHR9O1xuXHRcdH1cblx0XHR0aGF0W1wic2V0XCIgKyBjYXBpdGFsaXplZChwcm9wTmFtZSldID0gc2V0dGVyO1xuXHR9O1xuXG5cdC8vIGluc3RhbGwgZXh0ZW5zaW9ucyBieSBoYW5kIGZvciBvYmplY3QsIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRoZVxuXHQvLyBleHRlbnNpb24gaW5zdGFsbGF0aW9uIG9mIHRoZSBzdWJjbGFzc2VzXG5cdHRoYXQuZ2V0Q2xhc3MoKS5leHRlbnNpb25zLmZvckVhY2goZnVuY3Rpb24oZXh0ZW5zaW9uKSB7XG5cdFx0ZXh0ZW5zaW9uKHRoYXQsIG15KTtcblx0fSk7XG5cblx0cmV0dXJuIHRoYXQ7XG59XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIGRpcmVjdCBzdWJjbGFzc2VzLlxuICovXG5vYmplY3Quc3ViY2xhc3NlcyA9IFtdO1xuXG4vKipcbiAqIFJldHVybiBhbiBhcnJheSBvZiBhbGwgc3ViY2xhc3Nlcy5cbiAqL1xub2JqZWN0LmFsbFN1YmNsYXNzZXMgPSBmdW5jdGlvbigpIHtcblx0bGV0IGFsbFN1YmNsYXNzZXMgPSB0aGlzLnN1YmNsYXNzZXMuc2xpY2UoKTtcblx0dGhpcy5zdWJjbGFzc2VzLmZvckVhY2goZnVuY3Rpb24oa2xhc3MpIHtcblx0XHRrbGFzcy5hbGxTdWJjbGFzc2VzKCkuZm9yRWFjaChmdW5jdGlvbihzdWJjbGFzcykge1xuXHRcdFx0YWxsU3ViY2xhc3Nlcy5wdXNoKHN1YmNsYXNzKTtcblx0XHR9KTtcblx0fSk7XG5cdHJldHVybiBhbGxTdWJjbGFzc2VzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYWxsIGNvbmNyZXRlIHN1YmNsYXNzZXMuXG4gKi9cbm9iamVjdC5hbGxDb25jcmV0ZVN1YmNsYXNzZXMgPSBmdW5jdGlvbigpIHtcblx0bGV0IGFsbENvbmNyZXRlU3ViY2xhc3NlcyA9IHRoaXMuc3ViY2xhc3Nlcy5maWx0ZXIoZnVuY3Rpb24oa2xhc3MpIHtcblx0XHRyZXR1cm4gIWtsYXNzLmlzQWJzdHJhY3Q7XG5cdH0pO1xuXG5cdHRoaXMuc3ViY2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGtsYXNzKSB7XG5cdFx0a2xhc3MuYWxsQ29uY3JldGVTdWJjbGFzc2VzKCkuZm9yRWFjaChmdW5jdGlvbihzdWJjbGFzcykge1xuXHRcdFx0YWxsQ29uY3JldGVTdWJjbGFzc2VzLnB1c2goc3ViY2xhc3MpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRyZXR1cm4gYWxsQ29uY3JldGVTdWJjbGFzc2VzO1xufTtcblxub2JqZWN0LnN1YmNsYXNzUmVzcG9uc2liaWxpdHkgPSBzdWJjbGFzc1Jlc3BvbnNpYmlsaXR5O1xuXG4vKipcbiAqIFJldHVybiBhbiBhcnJheSBvZiBhbGwgZXh0ZW5zaW9ucyBvZiB0aGUgY2xhc3MsIHNlZSBgb2JqZWN0LmV4dGVuZGAuXG4gKi9cbm9iamVjdC5leHRlbnNpb25zID0gW107XG5cbmxldCBzdXBlckNhbGxSZWdleCA9IC9cXGJzdXBlclxcYi87XG5cbi8qKlxuICogUmV0dXJuIGEgbmV3IHN1YmNsYXNzLCBhbmQgcmVnaXN0ZXIgaXQgdG8gdGhlIGFycmF5IG9mIGBzdWJjbGFzc2VzYC5cbiAqXG4gKiBAcGFyYW17ZnVuY3Rpb259IGJ1aWxkZXIgRnVuY3Rpb24gdXNlZCB0byBidWlsZCBuZXcgaW5zdGFuY2VzIG9mIHRoZVxuICogc3ViY2xhc3MuXG4gKi9cbm9iamVjdC5zdWJjbGFzcyA9IGZ1bmN0aW9uKGJ1aWxkZXIpIHtcblx0bGV0IHRoYXQgPSB0aGlzO1xuXG5cdGZ1bmN0aW9uIGtsYXNzKHNwZWMsIG15LCBub3RGaW5hbCkge1xuXHRcdHNwZWMgPSBzcGVjIHx8IHt9O1xuXHRcdG15ID0gbXkgfHwge307XG5cblx0XHRpZiAoa2xhc3MuaXNBYnN0cmFjdCAmJiAhbm90RmluYWwpIHtcblx0XHRcdHRocm93QWJzdHJhY3RDbGFzc0Vycm9yKHRoYXQpO1xuXHRcdH1cblxuXHRcdGlmIChrbGFzcy5pc1NpbmdsZXRvbiAmJiAhbm90RmluYWwpIHtcblx0XHRcdHRocm93U2luZ2xldG9uQ2xhc3NFcnJvcih0aGF0KTtcblx0XHR9XG5cblx0XHRsZXQgaW5zdGFuY2UgPSB0aGF0KHNwZWMsIG15LCB0cnVlKTtcblxuXHRcdGluc3RhbmNlLmdldENsYXNzID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4ga2xhc3M7XG5cdFx0fTtcblxuXHRcdGxldCBzdXBlckluc3RhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgaW5zdGFuY2UpO1xuXHRcdGxldCBzdXBlck15ID0gT2JqZWN0LmFzc2lnbih7fSwgbXkpO1xuXG5cdFx0a2xhc3MuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGV4dGVuc2lvbikge1xuXHRcdFx0ZXh0ZW5zaW9uKGluc3RhbmNlLCBteSk7XG5cdFx0fSk7XG5cblx0XHRidWlsZGVyKGluc3RhbmNlLCBteSk7XG5cblx0XHRpZiAoc3VwZXJDYWxsUmVnZXgudGVzdChidWlsZGVyKSkge1xuXHRcdFx0aW5zdGFsbFN1cGVyKG15LCBzdXBlck15LCBrbGFzcywgXCJteVwiKTtcblx0XHRcdGluc3RhbGxTdXBlcihpbnN0YW5jZSwgc3VwZXJJbnN0YW5jZSwga2xhc3MsIFwidGhhdFwiKTtcblx0XHR9XG5cblx0XHRpZiAoIW5vdEZpbmFsKSB7XG5cdFx0XHRteS5wcmVJbml0aWFsaXplKHNwZWMpO1xuXHRcdFx0bXkuaW5pdGlhbGl6ZShzcGVjKTtcblx0XHRcdG15LnBvc3RJbml0aWFsaXplKHNwZWMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBpbnN0YW5jZTtcblx0fVxuXG5cdGtsYXNzLnN1cGVyY2xhc3MgPSB0aGF0O1xuXHRrbGFzcy5zdWJjbGFzc2VzID0gW107XG5cdHRoYXQuc3ViY2xhc3Nlcy5wdXNoKGtsYXNzKTtcblxuXHQvLyBzdGF0aWMgaW5oZXJpdGFuY2Vcblx0a2xhc3MuY2xhc3NCdWlsZGVyID0gdGhhdC5jbGFzc0J1aWxkZXI7XG5cdGtsYXNzLmNsYXNzQnVpbGRlcihrbGFzcyk7XG5cblx0cmV0dXJuIGtsYXNzO1xufTtcblxub2JqZWN0LnNpbmdsZXRvblN1YmNsYXNzID0gZnVuY3Rpb24oYnVpbGRlcikge1xuXHRsZXQga2xhc3MgPSB0aGlzLnN1YmNsYXNzKGJ1aWxkZXIpO1xuXHRsZXQgaW5zdGFuY2UgPSBrbGFzcygpO1xuXHRrbGFzcy5pc1NpbmdsZXRvbiA9IHRydWU7XG5cdGtsYXNzLmluc3RhbmNlID0gZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGluc3RhbmNlO1xuXHR9O1xuXG5cdHJldHVybiBrbGFzcztcbn07XG5cbm9iamVjdC5hYnN0cmFjdFN1YmNsYXNzID0gZnVuY3Rpb24oYnVpbGRlcikge1xuXHRsZXQga2xhc3MgPSB0aGlzLnN1YmNsYXNzKGJ1aWxkZXIpO1xuXHRrbGFzcy5pc0Fic3RyYWN0ID0gdHJ1ZTtcblx0cmV0dXJuIGtsYXNzO1xufTtcblxub2JqZWN0LmNsYXNzID0gZnVuY3Rpb24oYnVpbGRlcikge1xuXHRsZXQgdGhhdCA9IHRoaXM7XG5cblx0aWYgKHRoYXQgPT09IG9iamVjdCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIm9iamVjdCBjbGFzcyBzaG91bGQgbm90IGJlIGV4dGVuZGVkLlwiKTtcblx0fVxuXG5cdGxldCBzdXBlckNsYXNzQnVpbGRlciA9IHRoYXQuY2xhc3NCdWlsZGVyO1xuXHR0aGF0LmNsYXNzQnVpbGRlciA9IGZ1bmN0aW9uKGtsYXNzKSB7XG5cdFx0c3VwZXJDbGFzc0J1aWxkZXIoa2xhc3MpO1xuXHRcdGJ1aWxkZXIoa2xhc3MpO1xuXHR9O1xuXG5cdHRoYXQuY2xhc3NCdWlsZGVyKHRoYXQpO1xufTtcblxub2JqZWN0LmNsYXNzQnVpbGRlciA9IGZ1bmN0aW9uKHRoYXQpIHtcblx0Ly8gVE9ETzogdXNlIE9iamVjdC5hc3NpZ24/XG5cdHRoYXQuY2xhc3MgPSBvYmplY3QuY2xhc3M7XG5cdHRoYXQuc3ViY2xhc3MgPSBvYmplY3Quc3ViY2xhc3M7XG5cdHRoYXQuc2luZ2xldG9uU3ViY2xhc3MgPSBvYmplY3Quc2luZ2xldG9uU3ViY2xhc3M7XG5cdHRoYXQuYWJzdHJhY3RTdWJjbGFzcyA9IG9iamVjdC5hYnN0cmFjdFN1YmNsYXNzO1xuXHR0aGF0LmFsbFN1YmNsYXNzZXMgPSBvYmplY3QuYWxsU3ViY2xhc3Nlcztcblx0dGhhdC5hbGxDb25jcmV0ZVN1YmNsYXNzZXMgPSBvYmplY3QuYWxsQ29uY3JldGVTdWJjbGFzc2VzO1xuXHR0aGF0LnN1YmNsYXNzUmVzcG9uc2liaWxpdHkgPSBzdWJjbGFzc1Jlc3BvbnNpYmlsaXR5O1xuXHR0aGF0LmV4dGVuZCA9IG9iamVjdC5leHRlbmQ7XG5cdHRoYXQuZXh0ZW5zaW9ucyA9IFtdO1xufTtcblxuLyoqXG4gKiBNdXRhdGUgcHVibGljIGZ1bmN0aW9ucyBvZiBgb2JqYCB0aGF0IG1ha2UgdXNlIG9mIGBzdXBlcigpYCBieSBiaW5kaW5nXG4gKiBgc3VwZXJgIGZyb20gd2l0aGluIGVhY2ggcHVibGljIGZ1bmN0aW9uIG9mIGBvYmpgIHRvIHRoZSBmdW5jdGlvbiBpblxuICogYHByb3RvYC5cbiAqL1xuZnVuY3Rpb24gaW5zdGFsbFN1cGVyKG9iaiwgcHJvdG8sIGtsYXNzLCByZWNlaXZlck5hbWUpIHtcblx0bWV0aG9kc1dpdGhTdXBlckNhbGwob2JqLCBwcm90bywga2xhc3MsIHJlY2VpdmVyTmFtZSkuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7XG5cdFx0aWYgKCFvYmpbbmFtZV0uc3VwZXJJbnN0YWxsZWQpIHtcblx0XHRcdG9ialtuYW1lXSA9IChmdW5jdGlvbihvYmosIGZuLCBzdXBlckZuKSB7XG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHRcdGxldCB0bXAgPSBvYmouc3VwZXI7XG5cdFx0XHRcdFx0b2JqLnN1cGVyID0gc3VwZXJGbjtcblx0XHRcdFx0XHRsZXQgcmV0dXJuVmFsdWUgPSBmbi5hcHBseShvYmosIGFyZ3VtZW50cyk7XG5cdFx0XHRcdFx0b2JqLnN1cGVyID0gdG1wO1xuXG5cdFx0XHRcdFx0Ly8gV2UgcmVhY2hlZCB0aGUgdG9wIG9mIHRoZSBzdGFjayByZWdhcmRpbmcgc3VwZXJcblx0XHRcdFx0XHQvLyBjYWxscywgc28gY2xlYW51cCB0aGUgbmFtZXNwYWNlLlxuXHRcdFx0XHRcdGlmIChvYmouc3VwZXIgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9iai5zdXBlcjtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gcmV0dXJuVmFsdWU7XG5cdFx0XHRcdH07XG5cdFx0XHR9KShvYmosIG9ialtuYW1lXSwgcHJvdG9bbmFtZV0pO1xuXHRcdFx0b2JqW25hbWVdLnN1cGVySW5zdGFsbGVkID0gdHJ1ZTtcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgbGlzdCBvZiBtZXRob2RzIGluIGBvYmpgIHRoYXQgcGVyZm9ybSBhIHN1cGVyY2FsbCB0byBgcHJvdG9gLlxuICogVGhlIGxpc3QgaXMgY2FjaGVkIGluIGBrbGFzc2AuXG4gKlxuICogYHJlY2VpdmVyTmFtZWAgaXMgZWl0aGVyIFwidGhhdFwiIG9yIFwibXlcIi5cbiAqL1xuZnVuY3Rpb24gbWV0aG9kc1dpdGhTdXBlckNhbGwob2JqLCBwcm90bywga2xhc3MsIHJlY2VpdmVyTmFtZSkge1xuXHRpZiAoIWtsYXNzLm1ldGhvZHNXaXRoU3VwZXJDYWxsKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGtsYXNzLCBcIm1ldGhvZHNXaXRoU3VwZXJDYWxsXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IGZhbHNlLFxuXHRcdFx0d3JpdGFibGU6IHRydWUsXG5cdFx0XHR2YWx1ZToge31cblx0XHR9KTtcblx0fVxuXG5cdGlmIChrbGFzcy5tZXRob2RzV2l0aFN1cGVyQ2FsbFtyZWNlaXZlck5hbWVdKSB7XG5cdFx0cmV0dXJuIGtsYXNzLm1ldGhvZHNXaXRoU3VwZXJDYWxsW3JlY2VpdmVyTmFtZV07XG5cdH1cblxuXHRrbGFzcy5tZXRob2RzV2l0aFN1cGVyQ2FsbFtyZWNlaXZlck5hbWVdID0gT2JqZWN0LmtleXMob2JqKS5maWx0ZXIoZnVuY3Rpb24obmFtZSkge1xuXHRcdHJldHVybiB0eXBlb2YocHJvdG9bbmFtZV0pID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHRcdHR5cGVvZihvYmpbbmFtZV0pID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHRcdHN1cGVyQ2FsbFJlZ2V4LnRlc3Qob2JqW25hbWVdKTtcblx0fSk7XG5cblx0cmV0dXJuIGtsYXNzLm1ldGhvZHNXaXRoU3VwZXJDYWxsW3JlY2VpdmVyTmFtZV07XG59XG5cbi8qKlxuICogRXh0ZW5kIHRoZSBjbGFzcyB3aXRoIG5ldyBtZXRob2RzL3Byb3BlcnRpZXMuXG4gKiBAcGFyYW17ZnVuY3Rpb259IGJ1aWxkZXIgdGFrZXMgdGhlIHNhbWUgYXJndW1lbnRzIGFzXG4gKiBgb2JqZWN0LnN1YmNsYXNzYDogYHRoYXRgLCBgc3BlY2AgYW5kIGBteWAuXG4gKi9cbm9iamVjdC5leHRlbmQgPSBmdW5jdGlvbihidWlsZGVyKSB7XG5cdHRoaXMuZXh0ZW5zaW9ucy5wdXNoKGJ1aWxkZXIpO1xufTtcblxuZnVuY3Rpb24gdGhyb3dBYnN0cmFjdENsYXNzRXJyb3Ioa2xhc3MpIHtcblx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGluc3RhbnRpYXRlIGFuIGFic3RyYWN0IGNsYXNzXCIpO1xufVxuXG5mdW5jdGlvbiB0aHJvd1NpbmdsZXRvbkNsYXNzRXJyb3Ioa2xhc3MpIHtcblx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBuZXcgaW5zdGFuY2VzIG9mIGEgc2luZ2xldG9uIGNsYXNzLCB1c2UgYGluc3RhbmNlYCBpbnN0ZWFkLlwiKTtcbn1cblxuLyoqXG4gKiBQb2x5ZmlsbCBmb3IgT2JqZWN0LmFzc2lnblxuICovXG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gIT09IFwiZnVuY3Rpb25cIikge1xuXHQoZnVuY3Rpb24oKSB7XG5cdFx0T2JqZWN0LmFzc2lnbiA9IGZ1bmN0aW9uKHRhcmdldCkge1xuXHRcdFx0aWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkIHx8IHRhcmdldCA9PT0gbnVsbCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0XCIpO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgb3V0cHV0ID0gT2JqZWN0KHRhcmdldCk7XG5cdFx0XHRmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuXHRcdFx0XHRsZXQgc291cmNlID0gYXJndW1lbnRzW2luZGV4XTtcblx0XHRcdFx0aWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkICYmIHNvdXJjZSAhPT0gbnVsbCkge1xuXHRcdFx0XHRcdGZvciAobGV0IG5leHRLZXkgaW4gc291cmNlKSB7XG5cdFx0XHRcdFx0XHRpZiAoc291cmNlLmhhc093blByb3BlcnR5KG5leHRLZXkpKSB7XG5cdFx0XHRcdFx0XHRcdG91dHB1dFtuZXh0S2V5XSA9IHNvdXJjZVtuZXh0S2V5XTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBvdXRwdXQ7XG5cdFx0fTtcblx0fSkoKTtcbn1cblxuLyoqXG4gKiBIZWxwZXJzXG4gKi9cblxuZnVuY3Rpb24gY2FwaXRhbGl6ZWQoc3RyaW5nKSB7XG5cdHJldHVybiBzdHJpbmdbMF0udG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTtcbn1cblxuLyoqXG4gKiBUaHJvdyBhbiBlcnJvciB3aGVuIGEgbWV0aG9kIHNob3VsZCBoYXZlIGJlZW4gb3ZlcnJpZGRlbiBpbiBhIGNvbmNyZXRlXG4gKiBzdWJjbGFzcy5cbiAqL1xuZnVuY3Rpb24gc3ViY2xhc3NSZXNwb25zaWJpbGl0eSgpIHtcblx0dGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3MgcmVzcG9uc2liaWxpdHlcIik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdDtcbiIsImltcG9ydCBvYmplY3QgZnJvbSBcIi4vb2JqZWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdC5zdWJjbGFzcyhmdW5jdGlvbih0aGF0LCBteSkge1xuXHRteS5pbml0aWFsaXplID0gZnVuY3Rpb24oc3BlYykge1xuXHRcdG15LnN1cGVyKHNwZWMpO1xuXHRcdG15Lmluc3RhbmNlID0gc3BlYy5pbnN0YW5jZTtcblxuXHRcdG15LmFjY2Vzc0xpc3RlbmVycyA9IHt9O1xuXHRcdG15LmNoYW5nZUxpc3RlbmVycyA9IHt9O1xuXHR9O1xuXG5cdHRoYXQub25BY2Nlc3MgPSBmdW5jdGlvbihwcm9wTmFtZSwgbGlzdGVuZXIpIHtcblx0XHRpZiAoIW15LmFjY2Vzc0xpc3RlbmVyc1twcm9wTmFtZV0pIHtcblx0XHRcdG15LmFjY2Vzc0xpc3RlbmVyc1twcm9wTmFtZV0gPSBbXTtcblx0XHR9XG5cdFx0aWYgKG15LmFjY2Vzc0xpc3RlbmVyc1twcm9wTmFtZV0uaW5kZXhPZihsaXN0ZW5lcikgPT09IC0xKSB7XG5cdFx0XHRteS5hY2Nlc3NMaXN0ZW5lcnNbcHJvcE5hbWVdLnB1c2gobGlzdGVuZXIpO1xuXHRcdH1cblx0fTtcblxuXHR0aGF0Lm9uQ2hhbmdlID0gZnVuY3Rpb24ocHJvcE5hbWUsIGxpc3RlbmVyKSB7XG5cdFx0aWYgKCFteS5jaGFuZ2VMaXN0ZW5lcnNbcHJvcE5hbWVdKSB7XG5cdFx0XHRteS5jaGFuZ2VMaXN0ZW5lcnNbcHJvcE5hbWVdID0gW107XG5cdFx0fVxuXHRcdGlmIChteS5jaGFuZ2VMaXN0ZW5lcnNbcHJvcE5hbWVdLmluZGV4T2YobGlzdGVuZXIpID09PSAtMSkge1xuXHRcdFx0bXkuY2hhbmdlTGlzdGVuZXJzW3Byb3BOYW1lXS5wdXNoKGxpc3RlbmVyKTtcblx0XHR9XG5cdH07XG5cblx0dGhhdC5lbWl0QWNjZXNzID0gZnVuY3Rpb24ocHJvcE5hbWUpIHtcblx0XHRpZiAoIW15LmFjY2Vzc0xpc3RlbmVyc1twcm9wTmFtZV0pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRteS5hY2Nlc3NMaXN0ZW5lcnNbcHJvcE5hbWVdLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHtcblx0XHRcdGxpc3RlbmVyKG15Lmluc3RhbmNlLCBwcm9wTmFtZSk7XG5cdFx0fSk7XG5cdH07XG5cblx0dGhhdC5lbWl0Q2hhbmdlID0gZnVuY3Rpb24ocHJvcE5hbWUsIHZhbHVlKSB7XG5cdFx0aWYgKCFteS5jaGFuZ2VMaXN0ZW5lcnNbcHJvcE5hbWVdKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0bXkuY2hhbmdlTGlzdGVuZXJzW3Byb3BOYW1lXS5mb3JFYWNoKGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG5cdFx0XHRsaXN0ZW5lcihteS5pbnN0YW5jZSwgcHJvcE5hbWUsIHZhbHVlKTtcblx0XHR9KTtcblx0fTtcbn0pO1xuIiwiaW1wb3J0IG9iamVjdCBmcm9tIFwiLi9vYmplY3RcIjtcbmltcG9ydCBwcm9wZXJ0aWVzRXZlbnRFbWl0dGVyIGZyb20gXCIuL3Byb3BlcnRpZXNFdmVudEVtaXR0ZXJcIjtcbmltcG9ydCBnbG9iYWxQcm9wZXJ0eUV2ZW50RW1pdHRlciBmcm9tIFwiLi9nbG9iYWxQcm9wZXJ0eUV2ZW50RW1pdHRlclwiO1xuXG4vKipcbiAqIEEgcHJvcGVydHkgcmVwcmVzZW50IGFuIG9ic2VydmFibGUgYXR0cmlidXRlIG9mIGFuIG9iamVjdCwgd2l0aCBvcHRpb25hbFxuICogZ2V0dGVycyBhbmQgc2V0dGVycy5cbiAqXG4gKiBAcGFyYW17c3RyaW5nfSBzcGVjLm93bmVyIC0gSW5zdGFuY2Ugb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGluc3RhbGxlZC5cbiAqIEBwYXJhbXtzdHJpbmd9IHNwZWMubmFtZSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5LCB3aGljaCB2YWx1ZSBvZiB0aGUgc2FtZVxuICogbmFtZSBpcyBpbnN0YWxsZWQgb24gYG15YCBvbiB0aGUgaW5zdGFuY2UuXG4gKi9cbm9iamVjdC5leHRlbmQoZnVuY3Rpb24odGhhdCwgbXkpIHtcblx0dGhhdC5vblByb3BlcnR5QWNjZXNzID0gZnVuY3Rpb24ocHJvcE5hbWUsIGxpc3RlbmVyKSB7XG5cdFx0bGV0IGVtaXR0ZXIgPSBteS5lbnN1cmVQcm9wZXJ0aWVzRXZlbnRFbWl0dGVyKCk7XG5cdFx0ZW1pdHRlci5vbkFjY2Vzcyhwcm9wTmFtZSwgbGlzdGVuZXIpO1xuXHR9O1xuXG5cdHRoYXQub25Qcm9wZXJ0eUNoYW5nZSA9IGZ1bmN0aW9uKHByb3BOYW1lLCBsaXN0ZW5lcikge1xuXHRcdGxldCBlbWl0dGVyID0gbXkuZW5zdXJlUHJvcGVydGllc0V2ZW50RW1pdHRlcigpO1xuXHRcdGVtaXR0ZXIub25DaGFuZ2UocHJvcE5hbWUsIGxpc3RlbmVyKTtcblx0fTtcblxuXHRteS5wcm9wZXJ0eSA9IGZ1bmN0aW9uKHByb3BOYW1lLCBpbml0aWFsVmFsdWUpIHtcblx0XHRsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG15LCBwcm9wTmFtZSwge1xuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGVtaXRQcm9wZXJ0eUFjY2Vzcyhwcm9wTmFtZSk7XG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKG5ld1ZhbHVlKSB7XG5cdFx0XHRcdHZhbHVlID0gbmV3VmFsdWU7XG5cdFx0XHRcdGVtaXRQcm9wZXJ0eUNoYW5nZShwcm9wTmFtZSwgdmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9O1xuXG5cdG15LmVuc3VyZVByb3BlcnRpZXNFdmVudEVtaXR0ZXIgPSBmdW5jdGlvbigpIHtcblx0XHRpZiAobXkucHJvcGVydGllc0V2ZW50RW1pdHRlcikge1xuXHRcdFx0cmV0dXJuIG15LnByb3BlcnRpZXNFdmVudEVtaXR0ZXI7XG5cdFx0fVxuXG5cdFx0bXkucHJvcGVydGllc0V2ZW50RW1pdHRlciA9IHByb3BlcnRpZXNFdmVudEVtaXR0ZXIoe1xuXHRcdFx0aW5zdGFuY2U6IHRoYXRcblx0XHR9KTtcblxuXHRcdHJldHVybiBteS5wcm9wZXJ0aWVzRXZlbnRFbWl0dGVyO1xuXHR9O1xuXG5cdGZ1bmN0aW9uIGVtaXRQcm9wZXJ0eUFjY2Vzcyhwcm9wTmFtZSkge1xuXHRcdGxldCBlbWl0dGVyID0gbXkuZW5zdXJlUHJvcGVydGllc0V2ZW50RW1pdHRlcigpO1xuXHRcdGVtaXR0ZXIuZW1pdEFjY2Vzcyhwcm9wTmFtZSk7XG5cdFx0Z2xvYmFsUHJvcGVydHlFdmVudEVtaXR0ZXIuaW5zdGFuY2UoKS5lbWl0QWNjZXNzKHRoYXQsIHByb3BOYW1lKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGVtaXRQcm9wZXJ0eUNoYW5nZShwcm9wTmFtZSwgdmFsdWUpIHtcblx0XHRsZXQgZW1pdHRlciA9IG15LmVuc3VyZVByb3BlcnRpZXNFdmVudEVtaXR0ZXIoKTtcblx0XHRlbWl0dGVyLmVtaXRDaGFuZ2UocHJvcE5hbWUsIHZhbHVlKTtcblx0XHRnbG9iYWxQcm9wZXJ0eUV2ZW50RW1pdHRlci5pbnN0YW5jZSgpLmVtaXRDaGFuZ2UodGhhdCwgcHJvcE5hbWUsIHZhbHVlKTtcblx0fVxufSk7XG4iLCIvKiBlc2xpbnQgamFzbWluZS9uby1nbG9iYWwtc2V0dXA6IDAgKi9cbmltcG9ydCBvYmplY3QgZnJvbSBcIi4vb2JqZWN0XCI7XG5cbi8qKlxuICogYHRlc3RDYXNlYCBpbXBsZW1lbnRzIGFuIGFic3RyYWN0IHRlc3QgY2xhc3MsIHVzaW5nIEphc21pbmUgYmVoaW5kIHRoZVxuICogc2NlbmVzLlxuICpcbiAqIEFsbCBzdWJjbGFzc2VzIG9mIHRlc3RDYXNlIGFyZSBzaW5nbGV0b25zIChzbyB0aGF0IG9uZSBpbnN0YW5jZSBpc1xuICogY3JlYXRlZCB3aGVuIHRoZSBjbGFzcyBpcyBsb2FkZWQpLlxuICovXG5sZXQgdGVzdENhc2UgPSBvYmplY3QuYWJzdHJhY3RTdWJjbGFzcyhmdW5jdGlvbih0aGF0LCBteSkge1xuXG5cdG15LmluaXRpYWxpemUgPSBmdW5jdGlvbihzcGVjKSB7XG5cdFx0bXkuc3VwZXIoc3BlYyk7XG5cdFx0bGV0IHRlc3RzID0gbXkucmVnaXN0ZXJlZFRlc3RzKCk7XG5cdFx0c3VpdGUobXkubmFtZSgpLCBmdW5jdGlvbigpIHtcblx0XHRcdGJlZm9yZUVhY2gobXkuYmVmb3JlRWFjaCk7XG5cdFx0XHRhZnRlckVhY2gobXkuYWZ0ZXJFYWNoKTtcblx0XHRcdGJlZm9yZUFsbChteS5iZWZvcmVBbGwpO1xuXHRcdFx0YWZ0ZXJBbGwobXkuYWZ0ZXJBbGwpO1xuXHRcdFx0dGVzdHMuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7XG5cdFx0XHRcdGl0KHRlc3QubmFtZSwgdGVzdC5mbik7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fTtcblxuXHRteS5mb3JjZSA9IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcblxuXHRteS5iZWZvcmVFYWNoID0gZnVuY3Rpb24oKSB7fTtcblx0bXkuYmVmb3JlQWxsID0gZnVuY3Rpb24oKSB7fTtcblx0bXkuYWZ0ZXJFYWNoID0gZnVuY3Rpb24oKSB7fTtcblx0bXkuYWZ0ZXJBbGwgPSBmdW5jdGlvbigpIHt9O1xuXG5cdG15Lm5hbWUgPSBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gbXkuc3ViY2xhc3NSZXNwb25zaWJpbGl0eSgpO1xuXHR9O1xuXG5cdG15LmV4cGVjdCA9IGV4cGVjdDtcblx0bXkuc3B5T24gPSBzcHlPbjtcblxuXHRteS5yZWdpc3RlcmVkVGVzdHMgPSBmdW5jdGlvbigpIHtcblx0XHRsZXQgcmVzdWx0ID0gW107XG5cdFx0bGV0IHRlc3RSZWdleCA9IC9UZXN0JC87XG5cblx0XHRPYmplY3Qua2V5cyhteSkuZm9yRWFjaChmdW5jdGlvbihuYW1lKSB7XG5cdFx0XHRpZiAodHlwZW9mIG15W25hbWVdID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHRcdFx0dGVzdFJlZ2V4LnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmVzdWx0LnB1c2goe1xuXHRcdFx0XHRcdG5hbWU6IG15LmJ1aWxkVGVzdE5hbWUobmFtZSksXG5cdFx0XHRcdFx0Zm46IG15W25hbWVdXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcblxuXHRteS5idWlsZFRlc3ROYW1lID0gZnVuY3Rpb24obmFtZSkge1xuXHRcdG5hbWUgPSBuYW1lLnNsaWNlKDAsIC00KTtcblx0XHRsZXQgcmVnZXhwID0gLyhbQS1aXVteQS1aXSopL2c7XG5cdFx0bmFtZSA9IG5hbWUucmVwbGFjZShyZWdleHAsIFwiICQxXCIpO1xuXHRcdG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH07XG5cblx0ZnVuY3Rpb24gc3VpdGUobmFtZSwgY2FsbGJhY2spIHtcblx0XHRpZiAobXkuZm9yY2UoKSkge1xuXHRcdFx0ZmRlc2NyaWJlKG5hbWUsIGZ1bmN0aW9uKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGphc21pbmUvbm8tZm9jdXNlZC10ZXN0c1xuXHRcdFx0XHRjYWxsYmFjaygpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc2NyaWJlKG5hbWUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjYWxsYmFjaygpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59KTtcblxudGVzdENhc2UuY2xhc3MoZnVuY3Rpb24odGhhdCkge1xuXHR0aGF0LmlzVGVzdENhc2UgPSBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fTtcblxuXHQvLyBBbGwgdGVzdCBjbGFzc2VzIGFyZSBzaW5nbGV0b25zLlxuXHQvLyBUT0RPOiBSZWZhY3RvciB3aXRoIGEgc3VwZXIgY2FsbCB3aGVuIHdlXCJsbCBoYXZlIHN1cGVyIG9uIGNsYXNzLXNpZGUuXG5cdHRoYXQuc3ViY2xhc3MgPSAoZnVuY3Rpb24oc3VwZXJTdWJjbGFzcykge1xuXHRcdHJldHVybiBmdW5jdGlvbihidWlsZGVyLCBvcHRpb25zKSB7XG5cdFx0XHRsZXQga2xhc3MgPSBzdXBlclN1YmNsYXNzLmFwcGx5KHRoYXQsIFtidWlsZGVyXSk7XG5cblx0XHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMuaXNBYnN0cmFjdCkge1xuXHRcdFx0XHRyZXR1cm4ga2xhc3M7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBpbnN0YW5jZSA9IGtsYXNzKCk7XG5cdFx0XHRrbGFzcy5pc1NpbmdsZXRvbiA9IHRydWU7XG5cdFx0XHRrbGFzcy5pbnN0YW5jZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gaW5zdGFuY2U7XG5cdFx0XHR9O1xuXG5cdFx0XHRyZXR1cm4ga2xhc3M7XG5cdFx0fTtcblx0fSkodGhhdC5zdWJjbGFzcyk7XG5cblx0Ly8gV2UgbmVlZCB0aGlzIHRvIGVuc3VyZSB3ZSBkb24ndCBoYXZlIGFic3RyYWN0ICYgc2luZ2xldG9uIGNsYXNzZXNcblx0dGhhdC5hYnN0cmFjdFN1YmNsYXNzID0gKGZ1bmN0aW9uKHN1cGVyQWJzdHJhY3RTdWJjbGFzcykge1xuXHRcdHJldHVybiBmdW5jdGlvbihidWlsZGVyKSB7XG5cdFx0XHRsZXQga2xhc3MgPSB0aGlzLnN1YmNsYXNzKGJ1aWxkZXIsIHsgaXNBYnN0cmFjdDogdHJ1ZSB9KTtcblx0XHRcdGtsYXNzLmlzQWJzdHJhY3QgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIGtsYXNzO1xuXHRcdH07XG5cblx0fSkodGhhdC5hYnN0cmFjdFN1YmNsYXNzKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB0ZXN0Q2FzZTtcbiJdfQ=="} \ No newline at end of file diff --git a/dist/klassified.min.js b/dist/klassified.min.js deleted file mode 100644 index 386f637..0000000 --- a/dist/klassified.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).klassified=e()}}(function(){return function e(t,n,s){function r(c,u){if(!n[c]){if(!t[c]){var o="function"==typeof require&&require;if(!u&&o)return o(c,!0);if(i)return i(c,!0);var a=new Error("Cannot find module '"+c+"'");throw a.code="MODULE_NOT_FOUND",a}var l=n[c]={exports:{}};t[c][0].call(l.exports,function(e){var n=t[c][1][e];return r(n||e)},l,l.exports,e,t,n,s)}return n[c].exports}for(var i="function"==typeof require&&require,c=0;c \"Woof Woof, hello Tintin\"\n * milou.getName(); // => \"dog milou\"\n *\n * @param{{}} spec\n * @param{{}} my\n * @return {object}\n */\nfunction object(spec, my) {\n\tspec = spec || {};\n\tmy = my || {};\n\n\tlet that = {};\n\n\tthat.getClass = function() {\n\t\treturn object;\n\t};\n\n\t/**\n\t * preInitialize is called by the framework at the beginning\n\t * of object instantiation.\n\t */\n\tmy.preInitialize = function() {};\n\n\t/**\n\t * initialize is called by the framework upon object instantiation.\n\t */\n\tmy.initialize = function() {};\n\n\t/**\n\t * postInitialize is called by the framework at the end of\n\t * object instantiation.\n\t */\n\tmy.postInitialize = function() {};\n\n\t/**\n\t * Throws an error because the method should have been overridden.\n\t */\n\tmy.subclassResponsibility = subclassResponsibility;\n\n\t/**\n\t * Getter/Setter generation\n\t */\n\tmy.get = function(propName, getter) {\n\t\tif (!getter) {\n\t\t\tgetter = function() {\n\t\t\t\treturn my[propName];\n\t\t\t};\n\t\t}\n\t\tthat[\"get\" + capitalized(propName)] = getter;\n\t};\n\n\tmy.set = function(propName, setter) {\n\t\tif (!setter) {\n\t\t\tsetter = function(value) {\n\t\t\t\tmy[propName] = value;\n\t\t\t\treturn value;\n\t\t\t};\n\t\t}\n\t\tthat[\"set\" + capitalized(propName)] = setter;\n\t};\n\n\t// install extensions by hand for object, since we do not have the\n\t// extension installation of the subclasses\n\tthat.getClass().extensions.forEach(function(extension) {\n\t\textension(that, my);\n\t});\n\n\treturn that;\n}\n\n/**\n * Return an array of direct subclasses.\n */\nobject.subclasses = [];\n\n/**\n * Return an array of all subclasses.\n */\nobject.allSubclasses = function() {\n\tlet allSubclasses = this.subclasses.slice();\n\tthis.subclasses.forEach(function(klass) {\n\t\tklass.allSubclasses().forEach(function(subclass) {\n\t\t\tallSubclasses.push(subclass);\n\t\t});\n\t});\n\treturn allSubclasses;\n};\n\n/**\n * Return all concrete subclasses.\n */\nobject.allConcreteSubclasses = function() {\n\tlet allConcreteSubclasses = this.subclasses.filter(function(klass) {\n\t\treturn !klass.isAbstract;\n\t});\n\n\tthis.subclasses.forEach(function(klass) {\n\t\tklass.allConcreteSubclasses().forEach(function(subclass) {\n\t\t\tallConcreteSubclasses.push(subclass);\n\t\t});\n\t});\n\n\treturn allConcreteSubclasses;\n};\n\nobject.subclassResponsibility = subclassResponsibility;\n\n/**\n * Return an array of all extensions of the class, see `object.extend`.\n */\nobject.extensions = [];\n\nlet superCallRegex = /\\bsuper\\b/;\n\n/**\n * Return a new subclass, and register it to the array of `subclasses`.\n *\n * @param{function} builder Function used to build new instances of the\n * subclass.\n */\nobject.subclass = function(builder) {\n\tlet that = this;\n\n\tfunction klass(spec, my, notFinal) {\n\t\tspec = spec || {};\n\t\tmy = my || {};\n\n\t\tif (klass.isAbstract && !notFinal) {\n\t\t\tthrowAbstractClassError(that);\n\t\t}\n\n\t\tif (klass.isSingleton && !notFinal) {\n\t\t\tthrowSingletonClassError(that);\n\t\t}\n\n\t\tlet instance = that(spec, my, true);\n\n\t\tinstance.getClass = function() {\n\t\t\treturn klass;\n\t\t};\n\n\t\tlet superInstance = Object.assign({}, instance);\n\t\tlet superMy = Object.assign({}, my);\n\n\t\tklass.extensions.forEach(function(extension) {\n\t\t\textension(instance, my);\n\t\t});\n\n\t\tbuilder(instance, my);\n\n\t\tif (superCallRegex.test(builder)) {\n\t\t\tinstallSuper(my, superMy, klass, \"my\");\n\t\t\tinstallSuper(instance, superInstance, klass, \"that\");\n\t\t}\n\n\t\tif (!notFinal) {\n\t\t\tmy.preInitialize(spec);\n\t\t\tmy.initialize(spec);\n\t\t\tmy.postInitialize(spec);\n\t\t}\n\n\t\treturn instance;\n\t}\n\n\tklass.superclass = that;\n\tklass.subclasses = [];\n\tthat.subclasses.push(klass);\n\n\t// static inheritance\n\tklass.classBuilder = that.classBuilder;\n\tklass.classBuilder(klass);\n\n\treturn klass;\n};\n\nobject.singletonSubclass = function(builder) {\n\tlet klass = this.subclass(builder);\n\tlet instance = klass();\n\tklass.isSingleton = true;\n\tklass.instance = function() {\n\t\treturn instance;\n\t};\n\n\treturn klass;\n};\n\nobject.abstractSubclass = function(builder) {\n\tlet klass = this.subclass(builder);\n\tklass.isAbstract = true;\n\treturn klass;\n};\n\nobject.class = function(builder) {\n\tlet that = this;\n\n\tif (that === object) {\n\t\tthrow new Error(\"object class should not be extended.\");\n\t}\n\n\tlet superClassBuilder = that.classBuilder;\n\tthat.classBuilder = function(klass) {\n\t\tsuperClassBuilder(klass);\n\t\tbuilder(klass);\n\t};\n\n\tthat.classBuilder(that);\n};\n\nobject.classBuilder = function(that) {\n\t// TODO: use Object.assign?\n\tthat.class = object.class;\n\tthat.subclass = object.subclass;\n\tthat.singletonSubclass = object.singletonSubclass;\n\tthat.abstractSubclass = object.abstractSubclass;\n\tthat.allSubclasses = object.allSubclasses;\n\tthat.allConcreteSubclasses = object.allConcreteSubclasses;\n\tthat.subclassResponsibility = subclassResponsibility;\n\tthat.extend = object.extend;\n\tthat.extensions = [];\n};\n\n/**\n * Mutate public functions of `obj` that make use of `super()` by binding\n * `super` from within each public function of `obj` to the function in\n * `proto`.\n */\nfunction installSuper(obj, proto, klass, receiverName) {\n\tmethodsWithSuperCall(obj, proto, klass, receiverName).forEach(function(name) {\n\t\tif (!obj[name].superInstalled) {\n\t\t\tobj[name] = (function(obj, fn, superFn) {\n\t\t\t\treturn function() {\n\n\t\t\t\t\tlet tmp = obj.super;\n\t\t\t\t\tobj.super = superFn;\n\t\t\t\t\tlet returnValue = fn.apply(obj, arguments);\n\t\t\t\t\tobj.super = tmp;\n\n\t\t\t\t\t// We reached the top of the stack regarding super\n\t\t\t\t\t// calls, so cleanup the namespace.\n\t\t\t\t\tif (obj.super === undefined) {\n\t\t\t\t\t\tdelete obj.super;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn returnValue;\n\t\t\t\t};\n\t\t\t})(obj, obj[name], proto[name]);\n\t\t\tobj[name].superInstalled = true;\n\t\t}\n\t});\n}\n\n/**\n * Return the list of methods in `obj` that perform a supercall to `proto`.\n * The list is cached in `klass`.\n *\n * `receiverName` is either \"that\" or \"my\".\n */\nfunction methodsWithSuperCall(obj, proto, klass, receiverName) {\n\tif (!klass.methodsWithSuperCall) {\n\t\tObject.defineProperty(klass, \"methodsWithSuperCall\", {\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: {}\n\t\t});\n\t}\n\n\tif (klass.methodsWithSuperCall[receiverName]) {\n\t\treturn klass.methodsWithSuperCall[receiverName];\n\t}\n\n\tklass.methodsWithSuperCall[receiverName] = Object.keys(obj).filter(function(name) {\n\t\treturn typeof(proto[name]) === \"function\" &&\n\t\t\ttypeof(obj[name]) === \"function\" &&\n\t\t\tsuperCallRegex.test(obj[name]);\n\t});\n\n\treturn klass.methodsWithSuperCall[receiverName];\n}\n\n/**\n * Extend the class with new methods/properties.\n * @param{function} builder takes the same arguments as\n * `object.subclass`: `that`, `spec` and `my`.\n */\nobject.extend = function(builder) {\n\tthis.extensions.push(builder);\n};\n\nfunction throwAbstractClassError(klass) {\n\tthrow new Error(\"Cannot instantiate an abstract class\");\n}\n\nfunction throwSingletonClassError(klass) {\n\tthrow new Error(\"Cannot create new instances of a singleton class, use `instance` instead.\");\n}\n\n/**\n * Polyfill for Object.assign\n */\nif (typeof Object.assign !== \"function\") {\n\t(function() {\n\t\tObject.assign = function(target) {\n\t\t\tif (target === undefined || target === null) {\n\t\t\t\tthrow new TypeError(\"Cannot convert undefined or null to object\");\n\t\t\t}\n\n\t\t\tlet output = Object(target);\n\t\t\tfor (let index = 1; index < arguments.length; index++) {\n\t\t\t\tlet source = arguments[index];\n\t\t\t\tif (source !== undefined && source !== null) {\n\t\t\t\t\tfor (let nextKey in source) {\n\t\t\t\t\t\tif (source.hasOwnProperty(nextKey)) {\n\t\t\t\t\t\t\toutput[nextKey] = source[nextKey];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t};\n\t})();\n}\n\n/**\n * Helpers\n */\n\nfunction capitalized(string) {\n\treturn string[0].toUpperCase() + string.slice(1);\n}\n\n/**\n * Throw an error when a method should have been overridden in a concrete\n * subclass.\n */\nfunction subclassResponsibility() {\n\tthrow new Error(\"Subclass responsibility\");\n}\n\nexport default object;\n","import object from \"./object\";\n\nexport default object.subclass(function(that, my) {\n\tmy.initialize = function(spec) {\n\t\tmy.super(spec);\n\t\tmy.instance = spec.instance;\n\n\t\tmy.accessListeners = {};\n\t\tmy.changeListeners = {};\n\t};\n\n\tthat.onAccess = function(propName, listener) {\n\t\tif (!my.accessListeners[propName]) {\n\t\t\tmy.accessListeners[propName] = [];\n\t\t}\n\t\tif (my.accessListeners[propName].indexOf(listener) === -1) {\n\t\t\tmy.accessListeners[propName].push(listener);\n\t\t}\n\t};\n\n\tthat.onChange = function(propName, listener) {\n\t\tif (!my.changeListeners[propName]) {\n\t\t\tmy.changeListeners[propName] = [];\n\t\t}\n\t\tif (my.changeListeners[propName].indexOf(listener) === -1) {\n\t\t\tmy.changeListeners[propName].push(listener);\n\t\t}\n\t};\n\n\tthat.emitAccess = function(propName) {\n\t\tif (!my.accessListeners[propName]) {\n\t\t\treturn;\n\t\t}\n\n\t\tmy.accessListeners[propName].forEach(function(listener) {\n\t\t\tlistener(my.instance, propName);\n\t\t});\n\t};\n\n\tthat.emitChange = function(propName, value) {\n\t\tif (!my.changeListeners[propName]) {\n\t\t\treturn;\n\t\t}\n\n\t\tmy.changeListeners[propName].forEach(function(listener) {\n\t\t\tlistener(my.instance, propName, value);\n\t\t});\n\t};\n});\n","import object from \"./object\";\nimport propertiesEventEmitter from \"./propertiesEventEmitter\";\nimport globalPropertyEventEmitter from \"./globalPropertyEventEmitter\";\n\n/**\n * A property represent an observable attribute of an object, with optional\n * getters and setters.\n *\n * @param{string} spec.owner - Instance on which the property is installed.\n * @param{string} spec.name - Name of the property, which value of the same\n * name is installed on `my` on the instance.\n */\nobject.extend(function(that, my) {\n\tthat.onPropertyAccess = function(propName, listener) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.onAccess(propName, listener);\n\t};\n\n\tthat.onPropertyChange = function(propName, listener) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.onChange(propName, listener);\n\t};\n\n\tmy.property = function(propName, initialValue) {\n\t\tlet value = initialValue;\n\t\tObject.defineProperty(my, propName, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\temitPropertyAccess(propName);\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset: function(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\temitPropertyChange(propName, value);\n\t\t\t}\n\t\t});\n\t};\n\n\tmy.ensurePropertiesEventEmitter = function() {\n\t\tif (my.propertiesEventEmitter) {\n\t\t\treturn my.propertiesEventEmitter;\n\t\t}\n\n\t\tmy.propertiesEventEmitter = propertiesEventEmitter({\n\t\t\tinstance: that\n\t\t});\n\n\t\treturn my.propertiesEventEmitter;\n\t};\n\n\tfunction emitPropertyAccess(propName) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.emitAccess(propName);\n\t\tglobalPropertyEventEmitter.instance().emitAccess(that, propName);\n\t}\n\n\tfunction emitPropertyChange(propName, value) {\n\t\tlet emitter = my.ensurePropertiesEventEmitter();\n\t\temitter.emitChange(propName, value);\n\t\tglobalPropertyEventEmitter.instance().emitChange(that, propName, value);\n\t}\n});\n","/* eslint jasmine/no-global-setup: 0 */\nimport object from \"./object\";\n\n/**\n * `testCase` implements an abstract test class, using Jasmine behind the\n * scenes.\n *\n * All subclasses of testCase are singletons (so that one instance is\n * created when the class is loaded).\n */\nlet testCase = object.abstractSubclass(function(that, my) {\n\n\tmy.initialize = function(spec) {\n\t\tmy.super(spec);\n\t\tlet tests = my.registeredTests();\n\t\tsuite(my.name(), function() {\n\t\t\tbeforeEach(my.beforeEach);\n\t\t\tafterEach(my.afterEach);\n\t\t\tbeforeAll(my.beforeAll);\n\t\t\tafterAll(my.afterAll);\n\t\t\ttests.forEach(function(test) {\n\t\t\t\tit(test.name, test.fn);\n\t\t\t});\n\t\t});\n\t};\n\n\tmy.force = function() {\n\t\treturn false;\n\t};\n\n\tmy.beforeEach = function() {};\n\tmy.beforeAll = function() {};\n\tmy.afterEach = function() {};\n\tmy.afterAll = function() {};\n\n\tmy.name = function() {\n\t\treturn my.subclassResponsibility();\n\t};\n\n\tmy.expect = expect;\n\tmy.spyOn = spyOn;\n\n\tmy.registeredTests = function() {\n\t\tlet result = [];\n\t\tlet testRegex = /Test$/;\n\n\t\tObject.keys(my).forEach(function(name) {\n\t\t\tif (typeof my[name] === \"function\" &&\n\t\t\t\ttestRegex.test(name)) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: my.buildTestName(name),\n\t\t\t\t\tfn: my[name]\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t};\n\n\tmy.buildTestName = function(name) {\n\t\tname = name.slice(0, -4);\n\t\tlet regexp = /([A-Z][^A-Z]*)/g;\n\t\tname = name.replace(regexp, \" $1\");\n\t\tname = name.toLowerCase();\n\t\treturn name;\n\t};\n\n\tfunction suite(name, callback) {\n\t\tif (my.force()) {\n\t\t\tfdescribe(name, function() { // eslint-disable-line jasmine/no-focused-tests\n\t\t\t\tcallback();\n\t\t\t});\n\t\t} else {\n\t\t\tdescribe(name, function() {\n\t\t\t\tcallback();\n\t\t\t});\n\t\t}\n\t}\n});\n\ntestCase.class(function(that) {\n\tthat.isTestCase = function() {\n\t\treturn true;\n\t};\n\n\t// All test classes are singletons.\n\t// TODO: Refactor with a super call when we\"ll have super on class-side.\n\tthat.subclass = (function(superSubclass) {\n\t\treturn function(builder, options) {\n\t\t\tlet klass = superSubclass.apply(that, [builder]);\n\n\t\t\tif (options && options.isAbstract) {\n\t\t\t\treturn klass;\n\t\t\t}\n\n\t\t\tlet instance = klass();\n\t\t\tklass.isSingleton = true;\n\t\t\tklass.instance = function() {\n\t\t\t\treturn instance;\n\t\t\t};\n\n\t\t\treturn klass;\n\t\t};\n\t})(that.subclass);\n\n\t// We need this to ensure we don't have abstract & singleton classes\n\tthat.abstractSubclass = (function(superAbstractSubclass) {\n\t\treturn function(builder) {\n\t\t\tlet klass = this.subclass(builder, { isAbstract: true });\n\t\t\tklass.isAbstract = true;\n\t\t\treturn klass;\n\t\t};\n\n\t})(that.abstractSubclass);\n});\n\nexport default testCase;\n"]} \ No newline at end of file From 16b8271aa78abd5ffb918b033b254b5a39fce67a Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:22:13 +0100 Subject: [PATCH 02/11] Add `lint` and `test` scripts to package.json --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2376527..c5317b7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "test": "test" }, "scripts": { - "test": "gulp test" + "test": "jasmine", + "lint": "eslint" }, "repository": { "type": "git", From a179939a7d2a543eb9a7059bf91360786fd72bc1 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:22:34 +0100 Subject: [PATCH 03/11] Delete unused files --- config.js | 11 ---- gulpfile.js | 154 ---------------------------------------------------- 2 files changed, 165 deletions(-) delete mode 100644 config.js delete mode 100644 gulpfile.js diff --git a/config.js b/config.js deleted file mode 100644 index 03e6842..0000000 --- a/config.js +++ /dev/null @@ -1,11 +0,0 @@ -/* global requirejs */ - -/** - * RequireJS config file - */ - -requirejs.config({ - paths: {}, - shim: {}, - enforceDefine: false -}); diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 29b814b..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,154 +0,0 @@ -require("babel-core/register"); - -const gulp = require("gulp"); -const gutil = require("gulp-util"); -const del = require("del"); -const browserify = require("browserify"); -const source = require("vinyl-source-stream"); -const buffer = require("vinyl-buffer"); - -const plugins = require("gulp-load-plugins")({ - rename: { - "gulp-babel-istanbul": "istanbul" - } -}); - -let sources = ["./src/**/*.js"]; -let misc = ["./gulpfile.js", "./eslintrc.js"]; -let tests = ["./test/**/*.js"]; -let all = sources.slice().concat(misc).concat(tests); - -gulp.task("default", ["lint", "test"]); - -// Lint - -gulp.task("lint", ["js-lint"]); - -gulp.task("js-lint", function() { - return gulp.src(all) - .pipe(plugins.eslint()) - .pipe(plugins.eslint.format("unix")) - .pipe(plugins.eslint.failAfterError()); -}); - -// Test - -gulp.task("coverage", () => { - return gulp.src(sources) - .pipe(plugins.istanbul()) - .pipe(plugins.istanbul.hookRequire()); -}); - -gulp.task("test", ["coverage"], function(done) { - let oldDefine = global.define; - - global.define = (a, fn) => fn(); - - let conf = require("./test/tests"); - let result = gulp.src(conf.files.map((path) => path + ".js")) - .pipe(plugins.jasmine({ - includeStackTrace: true - })) - .pipe(plugins.istanbul.writeReports()) - .pipe(plugins.istanbul.enforceThresholds({ thresholds: { global: 75 } })); - - global.define = oldDefine; - return result; -}); - -// -// Deploy -// - -gulp.task("optimize", function() { - let babelify = require("babelify"); - - let b = browserify({ - standalone: "klassified", - entries: "./src/klassified.js", - debug: true, - transform: [babelify] - }); - - return b.bundle() - .pipe(source("klassified.js")) - .pipe(buffer()) - .pipe(plugins.sourcemaps.init({ loadMaps: true })) - .on("error", gutil.log.bind(gutil, "Browserify Error")) - .pipe(plugins.sourcemaps.write("./")) - .pipe(gulp.dest("dist")); -}); - -gulp.task("optimize:minify", function() { - let babelify = require("babelify"); - - let b = browserify({ - standalone: "klassified", - entries: "./src/klassified.js", - debug: true, - transform: [babelify] - }); - - return b.bundle() - .pipe(source("klassified.min.js")) - .pipe(buffer()) - .pipe(plugins.sourcemaps.init({ loadMaps: true })) - // Add transformation tasks to the pipeline here. - .pipe(plugins.uglify()) - .on("error", gutil.log.bind(gutil, "Browserify Error")) - .pipe(plugins.sourcemaps.write("./")) - .pipe(gulp.dest("dist")); -}); - -gulp.task("build", plugins.sequence( - "optimize", - "optimize:minify", - "clean:strip" -)); - -// -// Release -// - -gulp.task("bump:patch", function() { - return gulp.src("./package.json") - .pipe(plugins.bump({ type: "patch" })) - .pipe(gulp.dest("./")); -}); - -gulp.task("bump:minor", function() { - return gulp.src("./package.json") - .pipe(plugins.bump({ type: "minor" })) - .pipe(gulp.dest("./")); -}); - -gulp.task("bump:major", function() { - return gulp.src("./package.json") - .pipe(plugins.bump({ type: "major" })) - .pipe(gulp.dest("./")); -}); - -gulp.task("release:patch", ["bump:patch", "build"], function() {}); -gulp.task("release:minor", ["bump:minor", "build"], function() {}); -gulp.task("release:major", ["bump:major", "build"], function() {}); - -// -// Clean -// - -gulp.task("clean:strip", function(cb) { - del([ - "strip" - ], cb); -}); - -gulp.task("clean:build", function(cb) { - del([ - "dist" - ], cb); -}); - -gulp.task("clean", plugins.sequence([ - "clean:build", - "clean:strip" -])); From fa3e9eb576fbbc397dc2ad466e6d5884e77e7c9a Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:39:53 +0100 Subject: [PATCH 04/11] Add .js at the end of all import statements This seems to be required by jasmine when type:module in package.json. --- src/globalPropertyEventEmitter.js | 2 +- src/klassified.js | 8 ++++---- src/propertiesEventEmitter.js | 2 +- src/property.js | 6 +++--- src/testCase.js | 2 +- test/src/abstractSubclassSpec.js | 2 +- test/src/abstractTestCaseSpec.js | 2 +- test/src/allConcreteSubclassesSpec.js | 2 +- test/src/allSubclassesSpec.js | 2 +- test/src/classInheritanceSpec.js | 2 +- test/src/classReferenceSpec.js | 2 +- test/src/extensionSpec.js | 2 +- test/src/getterSetterSpec.js | 4 ++-- test/src/inheritanceSpec.js | 2 +- test/src/initializationSpec.js | 2 +- test/src/propertyListenersSpec.js | 4 ++-- test/src/singletonSpec.js | 2 +- test/src/subclassCreationSpec.js | 2 +- test/src/superSpec.js | 2 +- test/src/testCaseSpec.js | 2 +- 20 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/globalPropertyEventEmitter.js b/src/globalPropertyEventEmitter.js index 8dd26da..aa5fbbf 100644 --- a/src/globalPropertyEventEmitter.js +++ b/src/globalPropertyEventEmitter.js @@ -1,4 +1,4 @@ -import object from "./object"; +import object from "./object.js"; /** * Central property events emitter. diff --git a/src/klassified.js b/src/klassified.js index 1e68904..d4cbc7c 100644 --- a/src/klassified.js +++ b/src/klassified.js @@ -1,7 +1,7 @@ -import object from "./object"; -import testCase from "./testCase"; -import propertyEventEmitter from "./globalPropertyEventEmitter"; -import "./property"; +import object from "./object.js"; +import testCase from "./testCase.js"; +import propertyEventEmitter from "./globalPropertyEventEmitter.js"; +import "./property.js"; export { object, diff --git a/src/propertiesEventEmitter.js b/src/propertiesEventEmitter.js index 4569318..dd4daa9 100644 --- a/src/propertiesEventEmitter.js +++ b/src/propertiesEventEmitter.js @@ -1,4 +1,4 @@ -import object from "./object"; +import object from "./object.js"; export default object.subclass(function(that, my) { my.initialize = function(spec) { diff --git a/src/property.js b/src/property.js index 9e87799..00f5b74 100644 --- a/src/property.js +++ b/src/property.js @@ -1,6 +1,6 @@ -import object from "./object"; -import propertiesEventEmitter from "./propertiesEventEmitter"; -import globalPropertyEventEmitter from "./globalPropertyEventEmitter"; +import object from "./object.js"; +import propertiesEventEmitter from "./propertiesEventEmitter.js"; +import globalPropertyEventEmitter from "./globalPropertyEventEmitter.js"; /** * A property represent an observable attribute of an object, with optional diff --git a/src/testCase.js b/src/testCase.js index 4a1bf84..8d6af03 100644 --- a/src/testCase.js +++ b/src/testCase.js @@ -1,5 +1,5 @@ /* eslint jasmine/no-global-setup: 0 */ -import object from "./object"; +import object from "./object.js"; /** * `testCase` implements an abstract test class, using Jasmine behind the diff --git a/test/src/abstractSubclassSpec.js b/test/src/abstractSubclassSpec.js index 91fb2b8..1b6dd58 100644 --- a/test/src/abstractSubclassSpec.js +++ b/test/src/abstractSubclassSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("abstract subclass", function() { diff --git a/test/src/abstractTestCaseSpec.js b/test/src/abstractTestCaseSpec.js index 6df3204..2029dab 100644 --- a/test/src/abstractTestCaseSpec.js +++ b/test/src/abstractTestCaseSpec.js @@ -1,4 +1,4 @@ -import testCase from "../../src/testCase"; +import testCase from "../../src/testCase.js"; let a = testCase.abstractSubclass(function(that, my) { diff --git a/test/src/allConcreteSubclassesSpec.js b/test/src/allConcreteSubclassesSpec.js index fe0e530..b0fd241 100644 --- a/test/src/allConcreteSubclassesSpec.js +++ b/test/src/allConcreteSubclassesSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("allConcreteSubclasses", function() { it("Can get all concrete subclasses of a class", function() { diff --git a/test/src/allSubclassesSpec.js b/test/src/allSubclassesSpec.js index 08c064e..01d660b 100644 --- a/test/src/allSubclassesSpec.js +++ b/test/src/allSubclassesSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("allSubclasses", function() { it("Can get all subclasses of a class", function() { diff --git a/test/src/classInheritanceSpec.js b/test/src/classInheritanceSpec.js index ff945b8..39427fd 100644 --- a/test/src/classInheritanceSpec.js +++ b/test/src/classInheritanceSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("class-inheritance", function() { diff --git a/test/src/classReferenceSpec.js b/test/src/classReferenceSpec.js index bce899c..a7e2806 100644 --- a/test/src/classReferenceSpec.js +++ b/test/src/classReferenceSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("class-reference", function() { diff --git a/test/src/extensionSpec.js b/test/src/extensionSpec.js index 6dbb500..946f461 100644 --- a/test/src/extensionSpec.js +++ b/test/src/extensionSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("extension", function() { diff --git a/test/src/getterSetterSpec.js b/test/src/getterSetterSpec.js index cedb378..1ff0cfa 100644 --- a/test/src/getterSetterSpec.js +++ b/test/src/getterSetterSpec.js @@ -1,5 +1,5 @@ -import object from "../../src/object"; -import "../../src/property"; +import object from "../../src/object.js"; +import "../../src/property.js"; describe("getter/setter", function() { it("can generate getters", function() { diff --git a/test/src/inheritanceSpec.js b/test/src/inheritanceSpec.js index 826afe1..23c015e 100644 --- a/test/src/inheritanceSpec.js +++ b/test/src/inheritanceSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("inheritance", function() { diff --git a/test/src/initializationSpec.js b/test/src/initializationSpec.js index 2a616c4..4aee4e2 100644 --- a/test/src/initializationSpec.js +++ b/test/src/initializationSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("initialization", function() { diff --git a/test/src/propertyListenersSpec.js b/test/src/propertyListenersSpec.js index c49e4f3..f6fcc49 100644 --- a/test/src/propertyListenersSpec.js +++ b/test/src/propertyListenersSpec.js @@ -1,5 +1,5 @@ -import object from "../../src/object"; -import "../../src/property"; +import object from "../../src/object.js"; +import "../../src/property.js"; describe("property listeners", function() { it("can listen to property changes", function() { diff --git a/test/src/singletonSpec.js b/test/src/singletonSpec.js index f25a4a4..c0e68a7 100644 --- a/test/src/singletonSpec.js +++ b/test/src/singletonSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("singleton", function() { it("can create singleton subclass of object", function() { diff --git a/test/src/subclassCreationSpec.js b/test/src/subclassCreationSpec.js index 26985c7..fb76cf5 100644 --- a/test/src/subclassCreationSpec.js +++ b/test/src/subclassCreationSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("subclass creation", function() { diff --git a/test/src/superSpec.js b/test/src/superSpec.js index e7ecbb3..f1221d1 100644 --- a/test/src/superSpec.js +++ b/test/src/superSpec.js @@ -1,4 +1,4 @@ -import object from "../../src/object"; +import object from "../../src/object.js"; describe("super", function() { diff --git a/test/src/testCaseSpec.js b/test/src/testCaseSpec.js index a239189..27f84d2 100644 --- a/test/src/testCaseSpec.js +++ b/test/src/testCaseSpec.js @@ -1,4 +1,4 @@ -import testCase from "../../src/testCase"; +import testCase from "../../src/testCase.js"; describe("testCase", function() { let bTestCaseCount; From 4ea79ff4ab18474c4a692e1be9262950343f528a Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:40:50 +0100 Subject: [PATCH 05/11] Remove requirement for babel-eslint --- .eslintrc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 0c4f161..45ebde6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,7 +2,6 @@ let error = 2; module.exports = { - parser: "babel-eslint", parserOptions: { "ecmaVersion": 6, "sourceType": "module" From b88d13a51d0c06b352bc0a76bb9e98053c679b36 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:41:04 +0100 Subject: [PATCH 06/11] Switch to type:module in package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index c5317b7..3d6dbf9 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "A simple object model for JavaScript", "main": "dist/klassified.min.js", "module": "src/klassified.js", + "type": "module", "directories": { "test": "test" }, From ab57e330a7c80f8b6007d0011ee20572b876c8ca Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:41:18 +0100 Subject: [PATCH 07/11] Delete unused dependencies and bump the rest --- package-lock.json | 8419 +++------------------------------------------ package.json | 26 +- 2 files changed, 572 insertions(+), 7873 deletions(-) diff --git a/package-lock.json b/package-lock.json index edf3518..3f4a15b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,8091 +4,810 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@gulp-sourcemaps/identity-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz", - "integrity": "sha1-z6I7xYQPkQTOMqZedNt+epdLvuE=", - "dev": true, - "requires": { - "acorn": "5.1.2", - "css": "2.2.1", - "normalize-path": "2.1.1", - "source-map": "0.5.7", - "through2": "2.0.3" - }, - "dependencies": { - "acorn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", - "dev": true - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "2.1.1", - "through2": "2.0.3" - } - }, - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true - }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "@eslint/eslintrc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { - "acorn": "3.3.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.2.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" }, "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true } } }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "dependencies": { - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "jsonify": "0.0.0" + "ms": "2.1.2" } } } }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "array-find-index": { + "balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-slice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", - "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "array-uniq": "1.0.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "astw": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", - "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "acorn": "4.0.13" + "esutils": "^2.0.2" } }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "atob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", - "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "babel-code-frame": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-beta.0.tgz", - "integrity": "sha512-/xr1ADm5bnTjjN+xwoXb7lF4v2rnxMzNZzFU7h8SxB+qB6+IqSTOOqVcpaPTUC2Non/MbQxS3OIZnJpQ2X21aQ==", - "dev": true, - "requires": { - "chalk": "2.2.0", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "eslint": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz", + "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "color-convert": "^2.0.1" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "color-name": "~1.1.4" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "ms": "2.1.2" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "is-glob": "^4.0.3" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "globals": { + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { - "ms": "2.0.0" + "type-fest": "^0.20.2" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-eslint": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.0.1.tgz", - "integrity": "sha512-h3moF6PCTQE06UjMMG+ydZSBvZ4Q7rqPE/5WAUOvUyHYUTqxm8JVhjZRiG1avI/tGVOK4BnZLDQapyLzh8DeKg==", - "dev": true, - "requires": { - "babel-code-frame": "7.0.0-beta.0", - "babel-traverse": "7.0.0-beta.0", - "babel-types": "7.0.0-beta.0", - "babylon": "7.0.0-beta.22" - } - }, - "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "dev": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "is-extglob": "^2.1.1" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "has-flag": "^4.0.0" } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true } } }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "eslint-config-ftgp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-ftgp/-/eslint-config-ftgp-2.0.1.tgz", + "integrity": "sha512-2tjI41ZgzEWIzs9EkBW7/+q3OCWAF492WVn/dGnSSv5LG+gQLDIXAGJKP2il/Y3X5AmJn/rMzhDy+tULuqw50g==", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "eslint-config-standard": "^16.0.3", + "eslint-plugin-ftgp": "^2.0.0", + "eslint-plugin-jasmine": "^4.1.3", + "eslint-plugin-promise": ">=3.8.0", + "eslint-plugin-standard": "^5.0.0" } }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "eslint-config-standard": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", + "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", + "dev": true + }, + "eslint-plugin-ftgp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-ftgp/-/eslint-plugin-ftgp-2.0.0.tgz", + "integrity": "sha512-36duF7nPgzPwjVy516tfzWdSmtp8Ob0tDPlOVl471gsvS1DWWfhIqBKjMe31HHA4t+S6ThPSwqxw2gdSKYC9/A==", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "doctrine": "^1.2.2", + "requireindex": "~1.1.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-helper-function-name": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-beta.0.tgz", - "integrity": "sha512-DaQccFBBWBEzMdqbKmNXamY0m1yLHJGOdbbEsNoGdJrrU7wAF3wwowtDDPzF0ZT3SqJXPgZW/P2kgBX9moMuAA==", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "7.0.0-beta.0", - "babel-template": "7.0.0-beta.0", - "babel-traverse": "7.0.0-beta.0", - "babel-types": "7.0.0-beta.0" - } - }, - "babel-helper-get-function-arity": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-beta.0.tgz", - "integrity": "sha512-csqAic15/2Vm1951nJxkkL9K8E6ojyNF/eAOjk7pqJlO8kvgrccGNFCV9eDwcGHDPe5AjvJGwVSAcQ5fit9wuA==", - "dev": true, - "requires": { - "babel-types": "7.0.0-beta.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-istanbul": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/babel-istanbul/-/babel-istanbul-0.12.2.tgz", - "integrity": "sha1-5yPwfJokMtiAVVILwi519cI5Fhw=", - "dev": true, - "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "handlebars": "4.0.11", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "multi-glob": "1.0.1", - "nopt": "3.0.6", - "object-assign": "4.1.1", - "once": "1.4.0", - "resolve": "1.4.0", - "source-map": "0.4.4", - "supports-color": "3.1.2", - "which": "1.2.14", - "wordwrap": "1.0.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - } - } - }, - "babel-messages": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-beta.0.tgz", - "integrity": "sha512-eXdShsm9ZTh9AQhlIaAn6HR3xWpxCnK9ZwIDA9QyjnwTgMctGxHHflw4b4RJ3/ZjTL0Vrmvm0tQXPkp49mTAUw==", - "dev": true - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" - } - }, - "babel-template": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-beta.0.tgz", - "integrity": "sha512-tmdH+MmmU0F6Ur8humpevSmFzYKbrN3Oru0g5Qyg4R6+sxjnzZmnvzUbsP0aKMr7tB0Ua6xhEb9arKTOsEMkyA==", - "dev": true, - "requires": { - "babel-traverse": "7.0.0-beta.0", - "babel-types": "7.0.0-beta.0", - "babylon": "7.0.0-beta.22", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-beta.0.tgz", - "integrity": "sha512-IKzuTqUcQtMRZ0Vv5RjIrGGj33eBKmNTNeRexWSyjPPuAciyNkva1rt7WXPfHfkb+dX7coRAIUhzeTUEzhnwdA==", - "dev": true, - "requires": { - "babel-code-frame": "7.0.0-beta.0", - "babel-helper-function-name": "7.0.0-beta.0", - "babel-messages": "7.0.0-beta.0", - "babel-types": "7.0.0-beta.0", - "babylon": "7.0.0-beta.22", - "debug": "3.1.0", - "globals": "10.1.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-beta.0.tgz", - "integrity": "sha512-rJc2kV9iPJGLlqIY71AM3nPcdkoeLRCDuR07GFgfd3lFl4TsBQq76TxYQQIZ2MONg1HpsqmuoCXr9aZ1Oa4wYw==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "2.0.0" - } - }, - "babelify": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "object-assign": "4.1.1" - } - }, - "babylon": { - "version": "7.0.0-beta.22", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.22.tgz", - "integrity": "sha512-Yl7iT8QGrS8OfR7p6R12AJexQm+brKwrryai4VWZ7NHUbPoZ5al3+klhvl/14shXZiLa7uK//OIFuZ1/RKHgoA==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "bl": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", - "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", - "dev": true, - "requires": { - "readable-stream": "1.0.34" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", - "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "defined": "1.0.0", - "through2": "2.0.3", - "umd": "3.0.1" - } - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserify": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", - "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "assert": "1.4.1", - "browser-pack": "6.0.2", - "browser-resolve": "1.11.2", - "browserify-zlib": "0.2.0", - "buffer": "5.0.8", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", - "defined": "1.0.0", - "deps-sort": "2.0.0", - "domain-browser": "1.1.7", - "duplexer2": "0.1.4", - "events": "1.1.1", - "glob": "7.1.2", - "has": "1.0.1", - "htmlescape": "1.1.1", - "https-browserify": "1.0.0", - "inherits": "2.0.3", - "insert-module-globals": "7.0.1", - "labeled-stream-splicer": "2.0.0", - "module-deps": "4.1.1", - "os-browserify": "0.3.0", - "parents": "1.0.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "read-only-stream": "2.0.0", - "readable-stream": "2.3.3", - "resolve": "1.4.0", - "shasum": "1.0.2", - "shell-quote": "1.6.1", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "1.0.3", - "subarg": "1.0.0", - "syntax-error": "1.3.0", - "through2": "2.0.3", - "timers-browserify": "1.4.2", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4", - "xtend": "4.0.1" - } - }, - "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "buffer": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", - "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", - "dev": true, - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8" - } - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "bufferstreams": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.1.tgz", - "integrity": "sha1-AWE3MGCsWYjv+ZBYcxEU9uGV1R4=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bump-regex": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/bump-regex/-/bump-regex-2.8.0.tgz", - "integrity": "sha512-prjTDXzGEbTvCgDVEAKvOGpAqZnz5EmzJNiYi2L72TjNy+T91w3SbPgofnAsLXZZBqZigv+kN4oF5oEIyr6LPw==", - "dev": true, - "requires": { - "semver": "5.4.1", - "xtend": "4.0.1" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - } - } - }, - "cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camel-case": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz", - "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=", - "dev": true, - "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" - } - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "optional": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", - "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "change-case": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz", - "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=", - "dev": true, - "requires": { - "camel-case": "1.2.2", - "constant-case": "1.1.2", - "dot-case": "1.1.2", - "is-lower-case": "1.1.3", - "is-upper-case": "1.1.2", - "lower-case": "1.1.4", - "lower-case-first": "1.0.2", - "param-case": "1.1.2", - "pascal-case": "1.1.2", - "path-case": "1.1.2", - "sentence-case": "1.1.3", - "snake-case": "1.1.2", - "swap-case": "1.1.2", - "title-case": "1.1.2", - "upper-case": "1.1.3", - "upper-case-first": "1.1.2" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, - "requires": { - "restore-cursor": "1.0.1" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - } - } - }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "through2": "2.0.3" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combine-source-map": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", - "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", - "dev": true, - "requires": { - "convert-source-map": "1.1.3", - "inline-source-map": "0.6.2", - "lodash.memoize": "3.0.4", - "source-map": "0.5.7" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } - } - }, - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "concat-with-sourcemaps": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constant-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz", - "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=", - "dev": true, - "requires": { - "snake-case": "1.1.2", - "upper-case": "1.1.3" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" - } - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" - } - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" - } - }, - "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5" - } - }, - "css": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", - "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "source-map": "0.1.43", - "source-map-resolve": "0.3.1", - "urix": "0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "1.0.2" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "0.10.35" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-fabulous": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-0.2.1.tgz", - "integrity": "sha512-u0TV6HcfLsZ03xLBhdhSViQMldaiQ2o+8/nSILaXkuNSWvxkx66vYJUAam0Eu7gAilJRX/69J4kKdqajQPaPyw==", - "dev": true, - "requires": { - "debug": "3.1.0", - "memoizee": "0.4.11", - "object-assign": "4.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "1.0.2" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - } - }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true - }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "shasum": "1.0.2", - "subarg": "1.0.0", - "through2": "2.0.3" - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "detect-file": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", - "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", - "dev": true, - "requires": { - "fs-exists-sync": "0.1.0" - } - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "detective": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", - "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", - "dev": true, - "requires": { - "acorn": "4.0.13", - "defined": "1.0.0" - } - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" - } - }, - "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, - "dot-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz", - "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=", - "dev": true, - "requires": { - "sentence-case": "1.1.3" - } - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true, - "requires": { - "once": "1.3.3" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - } - } - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - } - }, - "es5-ext": { - "version": "0.10.35", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", - "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", - "dev": true, - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "concat-stream": "1.5.2", - "debug": "2.6.9", - "doctrine": "2.0.0", - "escope": "3.6.0", - "espree": "3.5.1", - "esquery": "1.0.0", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.6", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.16.1", - "is-resolvable": "1.0.0", - "js-yaml": "3.10.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.7.8", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "eslint-config-ftgp": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/eslint-config-ftgp/-/eslint-config-ftgp-1.2.2.tgz", - "integrity": "sha1-iGjUt4Wqm/FY/vn36rz4hGhjOj0=", - "dev": true, - "requires": { - "eslint-config-standard": "6.2.1", - "eslint-plugin-ftgp": "1.4.1", - "eslint-plugin-jasmine": "2.8.6", - "eslint-plugin-promise": "3.6.0", - "eslint-plugin-standard": "2.3.1" - } - }, - "eslint-config-standard": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz", - "integrity": "sha1-06aKr8cZFjnn7kQec0hzkCY1QpI=", - "dev": true - }, - "eslint-plugin-ftgp": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-ftgp/-/eslint-plugin-ftgp-1.4.1.tgz", - "integrity": "sha1-UyBw7fb/P4T6QCA0AXvUxn32IZk=", - "dev": true, - "requires": { - "change-case": "2.3.1", - "doctrine": "1.5.0", - "lodash": "4.17.4", - "requireindex": "1.1.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - } - } - }, - "eslint-plugin-jasmine": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.8.6.tgz", - "integrity": "sha1-Qsz0SUqVRLIgsa5CWTNZQqo3I+o=", - "dev": true - }, - "eslint-plugin-promise": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", - "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", - "dev": true - }, - "eslint-plugin-standard": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-2.3.1.tgz", - "integrity": "sha1-Z2W9Km2ezce98bFFrkuzDit7hvg=", - "dev": true - }, - "espree": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", - "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", - "dev": true, - "requires": { - "acorn": "5.1.2", - "acorn-jsx": "3.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, - "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" - } - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.3" - } - }, - "expand-tilde": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", - "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", - "dev": true, - "requires": { - "os-homedir": "1.0.2" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "1.1.0" - }, - "dependencies": { - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "time-stamp": "1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "findup-sync": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", - "dev": true, - "requires": { - "detect-file": "0.1.0", - "is-glob": "2.0.1", - "micromatch": "2.3.11", - "resolve-dir": "0.1.1" - } - }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", - "dev": true, - "requires": { - "expand-tilde": "2.0.2", - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0", - "object.pick": "1.3.0", - "parse-filepath": "1.0.1" - }, - "dependencies": { - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "1.0.1" - } - } - } - }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flagged-respawn": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", - "dev": true - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "fs-exists-sync": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "0.1.0" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "requires": { - "is-property": "1.0.2" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "requires": { - "glob": "4.5.3", - "glob2base": "0.0.12", - "minimatch": "2.0.10", - "ordered-read-streams": "0.1.0", - "through2": "0.6.5", - "unique-stream": "1.0.0" - }, - "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.4.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - } - } - }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true, - "requires": { - "gaze": "0.5.2" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "dev": true, - "requires": { - "find-index": "0.1.1" - } - }, - "global-modules": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", - "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", - "dev": true, - "requires": { - "global-prefix": "0.1.5", - "is-windows": "0.2.0" - } - }, - "global-prefix": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", - "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", - "dev": true, - "requires": { - "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "0.2.0", - "which": "1.3.0" - } - }, - "globals": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-10.1.0.tgz", - "integrity": "sha1-RCWhiBvg0za0qCOoKnvnJdXdmHw=", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" - } - } - } - }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true, - "requires": { - "archy": "1.0.0", - "chalk": "1.1.3", - "deprecated": "0.0.1", - "gulp-util": "3.0.8", - "interpret": "1.0.4", - "liftoff": "2.3.0", - "minimist": "1.2.0", - "orchestrator": "0.3.8", - "pretty-hrtime": "1.0.3", - "semver": "4.3.6", - "tildify": "1.2.0", - "v8flags": "2.1.1", - "vinyl-fs": "0.3.14" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "gulp-babel-istanbul": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-babel-istanbul/-/gulp-babel-istanbul-1.6.0.tgz", - "integrity": "sha1-SxRj2daUP6C7uWlA1qa3cBwVWjI=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-istanbul": "0.12.2", - "babel-preset-es2015": "6.24.1", - "gulp-util": "3.0.8", - "lodash": "4.17.4", - "through2": "2.0.3" - } - }, - "gulp-bump": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/gulp-bump/-/gulp-bump-2.8.0.tgz", - "integrity": "sha512-syvQLax2xQo1EDFJxanUqX1rv+YkVB4/cx/THN+uInmSjMGezT1/6WYLdXqkBAMQUw2KlyB2melz0DzrHdwkLA==", - "dev": true, - "requires": { - "bump-regex": "2.8.0", - "plugin-error": "0.1.2", - "plugin-log": "0.1.0", - "semver": "5.4.1", - "through2": "2.0.3" - }, - "dependencies": { - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", - "dev": true - } - } - }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "requires": { - "concat-with-sourcemaps": "1.0.4", - "through2": "2.0.3", - "vinyl": "2.1.0" - }, - "dependencies": { - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", - "dev": true, - "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" - } - } - } - }, - "gulp-eslint": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-2.1.0.tgz", - "integrity": "sha1-P9X+C3I2ZR8VuNS/sUB8O3TQE2w=", - "dev": true, - "requires": { - "bufferstreams": "1.1.1", - "eslint": "2.13.1", - "gulp-util": "3.0.8", - "object-assign": "4.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - }, - "eslint": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz", - "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "concat-stream": "1.5.2", - "debug": "2.6.9", - "doctrine": "1.5.0", - "es6-map": "0.1.5", - "escope": "3.6.0", - "espree": "3.5.1", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "1.3.1", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.6", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.16.1", - "is-resolvable": "1.0.0", - "js-yaml": "3.10.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "optionator": "0.8.2", - "path-is-absolute": "1.0.1", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.6.1", - "strip-json-comments": "1.0.4", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" - } - }, - "file-entry-cache": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", - "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "shelljs": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz", - "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=", - "dev": true - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "gulp-jasmine": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/gulp-jasmine/-/gulp-jasmine-2.4.2.tgz", - "integrity": "sha1-Wn9H4nNww2GawKKkQr45lnFAnbM=", - "dev": true, - "requires": { - "arrify": "1.0.1", - "gulp-util": "3.0.8", - "jasmine": "2.8.0", - "jasmine-terminal-reporter": "1.0.3", - "through2": "2.0.3" - } - }, - "gulp-load-plugins": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/gulp-load-plugins/-/gulp-load-plugins-1.5.0.tgz", - "integrity": "sha1-TEGffldk2aDjMGG6uWGPgbc9QXE=", - "dev": true, - "requires": { - "array-unique": "0.2.1", - "fancy-log": "1.3.0", - "findup-sync": "0.4.3", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "micromatch": "2.3.11", - "resolve": "1.4.0" - } - }, - "gulp-sequence": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/gulp-sequence/-/gulp-sequence-0.4.6.tgz", - "integrity": "sha1-44jWQxEEbgVUevQwNTUtlJVQHFA=", - "dev": true, - "requires": { - "gulp-util": "3.0.8", - "thunks": "4.9.0" - } - }, - "gulp-shell": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.5.2.tgz", - "integrity": "sha1-pJWcoGUa0ce7/nCy0K27tOGuqY0=", - "dev": true, - "requires": { - "async": "1.5.2", - "gulp-util": "3.0.8", - "lodash": "4.17.4", - "through2": "2.0.3" - } - }, - "gulp-sourcemaps": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.1.tgz", - "integrity": "sha512-1qHCI3hdmsMdq/SUotxwUh/L8YzlI6J9zQ5ifNOtx4Y6KV5y5sGuORv1KZzWhuKtz/mXNh5xLESUtwC4EndCjA==", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "1.0.1", - "@gulp-sourcemaps/map-sources": "1.0.0", - "acorn": "4.0.13", - "convert-source-map": "1.5.0", - "css": "2.2.1", - "debug-fabulous": "0.2.1", - "detect-newline": "2.1.0", - "graceful-fs": "4.1.11", - "source-map": "0.5.7", - "strip-bom-string": "1.0.0", - "through2": "2.0.3", - "vinyl": "1.2.0" - }, - "dependencies": { - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "gulp-uglify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", - "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", - "dev": true, - "requires": { - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash": "4.17.4", - "make-error-cause": "1.2.2", - "through2": "2.0.3", - "uglify-js": "3.1.5", - "vinyl-sourcemaps-apply": "0.2.1" - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "2.2.0", - "fancy-log": "1.3.0", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash._reescape": "3.0.0", - "lodash._reevaluate": "3.0.0", - "lodash._reinterpolate": "3.0.0", - "lodash.template": "3.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", - "replace-ext": "0.0.1", - "through2": "2.0.3", - "vinyl": "0.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "1.0.0" - } - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } - } - } - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "1.0.0" - } - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "requires": { - "parse-passwd": "1.0.0" - } - }, - "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "ignore": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.6.tgz", - "integrity": "sha512-HrxmNxKTGZ9a3uAl/FNG66Sdt0G9L4TtMbbUQjP1WhGmSj0FOyHvSgx7623aGJvXfPOur8MwmarlHT+37jmzlw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.4", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "insert-module-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", - "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "combine-source-map": "0.7.2", - "concat-stream": "1.5.2", - "is-buffer": "1.1.5", - "lexical-scope": "1.2.0", - "process": "0.11.10", - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, - "interpret": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", - "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "is-absolute": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", - "dev": true, - "requires": { - "is-relative": "0.2.1", - "is-windows": "0.2.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "is-my-json-valid": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", - "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", - "dev": true, - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true, - "requires": { - "is-path-inside": "1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true - }, - "is-relative": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", - "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", - "dev": true, - "requires": { - "is-unc-path": "0.1.2" - } - }, - "is-resolvable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "dev": true, - "requires": { - "tryit": "1.0.3" - } - }, - "is-unc-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", - "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", - "dev": true, - "requires": { - "unc-path-regex": "0.1.2" - } - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "dev": true, - "requires": { - "upper-case": "1.1.3" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "7.1.2", - "jasmine-core": "2.8.0" - } - }, - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - }, - "jasmine-reporters": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-2.2.1.tgz", - "integrity": "sha1-3pqSATZ4RiaefKit/1tEIhZx/L0=", - "dev": true, - "requires": { - "mkdirp": "0.5.1", - "xmldom": "0.1.27" - } - }, - "jasmine-terminal-reporter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jasmine-terminal-reporter/-/jasmine-terminal-reporter-1.0.3.tgz", - "integrity": "sha1-iW8eyP30v2rs3UHFA+2nNH9hUms=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "pluralize": "1.2.1" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - }, - "labeled-stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", - "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "isarray": "0.0.1", - "stream-splicer": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "lexical-scope": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", - "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", - "dev": true, - "requires": { - "astw": "2.2.0" - } - }, - "liftoff": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", - "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", - "dev": true, - "requires": { - "extend": "3.0.1", - "findup-sync": "0.4.3", - "fined": "1.1.0", - "flagged-respawn": "0.3.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mapvalues": "4.6.0", - "rechoir": "0.6.2", - "resolve": "1.4.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - } - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "3.0.1" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" - } - }, - "lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" - } - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "0.10.35" - } - }, - "make-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", - "dev": true - }, - "make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "requires": { - "make-error": "1.3.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - } - } - }, - "memoizee": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz", - "integrity": "sha1-vemBdmPJ5A/bKk6hw2cpYIeujI8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-weak-map": "2.0.2", - "event-emitter": "0.3.5", - "is-promise": "2.1.0", - "lru-queue": "0.1.0", - "next-tick": "1.0.0", - "timers-ext": "0.1.2" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "module-deps": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "browser-resolve": "1.11.2", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.5.0", - "duplexer2": "0.1.4", - "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.3", - "resolve": "1.4.0", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multi-glob": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multi-glob/-/multi-glob-1.0.1.tgz", - "integrity": "sha1-5n0qtEKdJ2BubrTbNQlK/JF4h1A=", - "dev": true, - "requires": { - "async": "1.5.2", - "glob": "5.0.15", - "lodash": "3.10.1" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } - } - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - }, - "dependencies": { - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "1.1.14" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", - "dev": true - }, - "natives": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", - "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.0.9" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "4.3.6", - "validate-npm-package-license": "3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "1.0.1", - "array-slice": "1.0.0", - "for-own": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true, - "requires": { - "end-of-stream": "0.1.5", - "sequencify": "0.0.7", - "stream-consume": "0.1.0" - } - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "param-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz", - "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=", - "dev": true, - "requires": { - "sentence-case": "1.1.3" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true, - "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" - } - }, - "parse-filepath": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", - "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", - "dev": true, - "requires": { - "is-absolute": "0.2.6", - "map-cache": "0.2.2", - "path-root": "0.1.1" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascal-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz", - "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=", - "dev": true, - "requires": { - "camel-case": "1.2.2", - "upper-case-first": "1.1.2" - } - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz", - "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=", - "dev": true, - "requires": { - "sentence-case": "1.1.3" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "0.1.2" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", - "dev": true, - "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "0.1.1", - "ansi-red": "0.1.1", - "arr-diff": "1.1.0", - "arr-union": "2.1.0", - "extend-shallow": "1.1.4" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-slice": "0.2.3" - } - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - } - } - }, - "plugin-log": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/plugin-log/-/plugin-log-0.1.0.tgz", - "integrity": "sha1-hgSc9qsQgzOYqTHzaJy67nteEzM=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "dateformat": "1.0.12" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "2.3.3" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "mute-stream": "0.0.5" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "1.4.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - }, - "dependencies": { - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true } } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, - "requireindex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", - "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI=", - "dev": true - }, - "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", - "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", - "dev": true, - "requires": { - "expand-tilde": "1.2.2", - "global-modules": "0.2.3" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, - "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "optional": true, - "requires": { - "align-text": "0.1.4" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true, - "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" - } - }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "sentence-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz", - "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, - "sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "0.0.1", - "sha.js": "2.4.9" - } - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" - } - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true, - "requires": { - "glob": "7.1.2", - "interpret": "1.0.4", - "rechoir": "0.6.2" - } - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "snake-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz", - "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=", - "dev": true, - "requires": { - "sentence-case": "1.1.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", - "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", - "dev": true, - "requires": { - "atob": "1.1.3", - "resolve-url": "0.2.1", - "source-map-url": "0.3.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "source-map-url": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", - "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", - "dev": true - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true, - "requires": { - "spdx-license-ids": "1.2.2" - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "eslint-plugin-jasmine": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.3.tgz", + "integrity": "sha512-q8j8KnLH/4uwmPELFZvEyfEcuCuGxXScJaRdqHjOjz064GcfX6aoFbzy5VohZ5QYk2+WvoqMoqDSb9nRLf89GQ==", "dev": true }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dev": true, - "requires": { - "lower-case": "1.1.4", - "upper-case": "1.1.3" - } - }, - "syntax-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", - "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", - "dev": true, - "requires": { - "acorn": "4.0.13" - } - }, - "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", - "dev": true, - "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.4", - "slice-ansi": "0.0.4", - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "eslint-plugin-promise": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", + "integrity": "sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "eslint-plugin-standard": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", + "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", "dev": true }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, - "thunks": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/thunks/-/thunks-4.9.0.tgz", - "integrity": "sha512-Bp4sGtcf8/SAgX2XBXYH2Crc7ESL7xuTuQ5kx84Tvz7VSkLFg6bfjFBpRmX2DLAWaLeK6q32ogqAnXcr5NAQtw==", - "dev": true - }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "os-homedir": "1.0.2" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "eslint-visitor-keys": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "espree": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { - "process": "0.11.10" + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + }, + "dependencies": { + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true + } } }, - "timers-ext": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz", - "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=", + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "es5-ext": "0.10.35", - "next-tick": "1.0.0" + "estraverse": "^5.1.0" } }, - "title-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz", - "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" + "estraverse": "^5.2.0" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "tryit": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "flat-cache": "^3.0.4" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.5.tgz", - "integrity": "sha512-tSqlO7/GZHAVSw6mbtJt2kz0ZcUrKUH7Xg92o52aE+gL0r6cXiASZY4dpHqQ7RVGXmoQuPA2qAkG4TkP59f8XA==", + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "commander": "2.11.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "umd": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", - "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "unique-stream": { + "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { - "upper-case": "1.1.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jasmine": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.0.2.tgz", + "integrity": "sha512-YsrgxJQEggxzByYe4j68eQLOiQeSrPDYGv4sHhGBp3c6HHdq+uPXeAQ73kOAQpdLZ3/0zN7x/TZTloqeE1/qIA==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "glob": "^7.1.6", + "jasmine-core": "^4.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "jasmine-core": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.0.0.tgz", + "integrity": "sha512-tq24OCqHElgU9KDpb/8O21r1IfotgjIzalfW9eCmRR40LZpvwXT68iariIyayMwi0m98RDt16aljdbwK0sBMmQ==", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "user-home": "1.1.1" - }, - "dependencies": { - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - } + "argparse": "^2.0.1" } }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, "requires": { - "clone": "1.0.2", - "clone-stats": "0.0.1", - "replace-ext": "0.0.1" + "brace-expansion": "^1.1.7" } }, - "vinyl-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.0.tgz", - "integrity": "sha1-ygZ+oIQx1QdyKx3lCD9gJhbrwjQ=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "bl": "0.9.5", - "through2": "0.6.5" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - } + "wrappy": "1" } }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "defaults": "1.0.3", - "glob-stream": "3.1.18", - "glob-watcher": "0.0.6", - "graceful-fs": "3.0.11", - "mkdirp": "0.5.1", - "strip-bom": "1.0.0", - "through2": "0.6.5", - "vinyl": "0.4.6" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "1.1.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" - } - } + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "vinyl-source-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz", - "integrity": "sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "through2": "0.6.5", - "vinyl": "0.4.6" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" - } - } + "callsites": "^3.0.0" } }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "requireindex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", + "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI=", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "source-map": "0.5.7" + "glob": "^7.1.3" } }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "indexof": "0.0.1" + "shebang-regex": "^3.0.0" } }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "isexe": "2.0.0" + "ansi-regex": "^5.0.1" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "mkdirp": "0.5.1" + "prelude-ls": "^1.2.1" } }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "punycode": "^2.1.0" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true } } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true } } } diff --git a/package.json b/package.json index 3d6dbf9..fecdab8 100644 --- a/package.json +++ b/package.json @@ -53,28 +53,8 @@ "homepage": "https://github.com/foretagsplatsen/klassified#readme", "engines": {}, "devDependencies": { - "babel-eslint": "^8.0.1", - "babel-preset-es2015": "^6.24.1", - "babel-register": "^6.26.0", - "babelify": "^7.3.0", - "browserify": "^14.5.0", - "del": "^2.2.0", - "eslint": "^3.12.1", - "eslint-config-ftgp": "^1.0.0", - "gulp": "^3.9.1", - "gulp-babel-istanbul": "^1.6.0", - "gulp-bump": "^2.2.0", - "gulp-concat": "^2.6.0", - "gulp-eslint": "^2.0.0", - "gulp-jasmine": "^2.4.2", - "gulp-load-plugins": "^1.2.0", - "gulp-sequence": "^0.4.5", - "gulp-shell": "^0.5.2", - "gulp-sourcemaps": "^2.6.1", - "gulp-uglify": "^3.0.0", - "jasmine": "^2.4.1", - "jasmine-reporters": "^2.1.1", - "vinyl-buffer": "^1.0.0", - "vinyl-source-stream": "^1.1.0" + "eslint": "^8.8.0", + "eslint-config-ftgp": "^2.0.1", + "jasmine": "^4.0.2" } } From 8c5da7f8d090f79c1dd34200d6033f27ee5676f5 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:41:51 +0100 Subject: [PATCH 08/11] Delete unused files --- .babelrc | 5 ----- .travis.yml | 7 ------- bower.json | 14 -------------- 3 files changed, 26 deletions(-) delete mode 100644 .babelrc delete mode 100644 .travis.yml delete mode 100644 bower.json diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 9c9c028..0000000 --- a/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - "es2015" - ] -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e4e01c3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - "7" - - "6" - - "6.5" -script: - - gulp diff --git a/bower.json b/bower.json deleted file mode 100644 index 983b058..0000000 --- a/bower.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "klassified", - "authors": [ - "Nicolas Petton ", - "Benjamin Van Ryseghem " - ], - "description": "Simple Object model in JavaScript", - "main": "src/object.js", - "keywords": [ - "object" - ], - "license": "MIT", - "homepage": "" -} From 78fa5e9f765c63421971b38e33eda7b26a94ae90 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:44:58 +0100 Subject: [PATCH 09/11] Add CODEOWNERS --- .github/CODEOWNERS | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..3b4ad17 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,7 @@ +# Each line is a file pattern followed by one or more owners. +# +# Order is important. The last matching pattern has the most precedence. +# So if a pull request only touches javascript files, only these owners +# will be requested to review. + +* @DamienCassou @BenjaminVanRyseghem From 76744fb4f9a6d0821ed0d36665d10670feb2cada Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:45:05 +0100 Subject: [PATCH 10/11] Add dependabot --- .github/dependabot.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..6e3425f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + open-pull-requests-limit: 2 + schedule: + interval: "daily" # runs on every weekday, Monday to Friday From 98be5cc64438290263c7b3826e3a9ad13df3d1c8 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Mon, 7 Feb 2022 08:45:11 +0100 Subject: [PATCH 11/11] Add GitHub Actions workflow --- .github/workflows/test.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..cc5ea6b --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,27 @@ +name: Test + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [lts/*] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm install + - run: npm run lint + - run: npm run test