modulejs
Advanced tools
Comparing version 2.4.0 to 2.5.0
@@ -1,2 +0,2 @@ | ||
/*! modulejs v2.4.0 - https://larsjung.de/modulejs/ */ | ||
/*! modulejs v2.5.0 - https://larsjung.de/modulejs/ */ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
@@ -6,3 +6,3 @@ if(typeof exports === 'object' && typeof module === 'object') | ||
else if(typeof define === 'function' && define.amd) | ||
define([], factory); | ||
define("modulejs", [], factory); | ||
else if(typeof exports === 'object') | ||
@@ -12,43 +12,87 @@ exports["modulejs"] = factory(); | ||
root["modulejs"] = factory(); | ||
})(this, function() { | ||
})((typeof self !== 'undefined' ? self : this), function() { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) | ||
/******/ if(installedModules[moduleId]) { | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ exports: {}, | ||
/******/ id: moduleId, | ||
/******/ loaded: false | ||
/******/ i: moduleId, | ||
/******/ l: false, | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Flag the module as loaded | ||
/******/ module.loaded = true; | ||
/******/ module.l = true; | ||
/******/ | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ | ||
/******/ | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ | ||
/******/ // define getter function for harmony exports | ||
/******/ __webpack_require__.d = function(exports, name, getter) { | ||
/******/ if(!__webpack_require__.o(exports, name)) { | ||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); | ||
/******/ } | ||
/******/ }; | ||
/******/ | ||
/******/ // define __esModule on exports | ||
/******/ __webpack_require__.r = function(exports) { | ||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | ||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
/******/ } | ||
/******/ Object.defineProperty(exports, '__esModule', { value: true }); | ||
/******/ }; | ||
/******/ | ||
/******/ // create a fake namespace object | ||
/******/ // mode & 1: value is a module id, require it | ||
/******/ // mode & 2: merge all properties of value into the ns | ||
/******/ // mode & 4: return value when already ns object | ||
/******/ // mode & 8|1: behave like require | ||
/******/ __webpack_require__.t = function(value, mode) { | ||
/******/ if(mode & 1) value = __webpack_require__(value); | ||
/******/ if(mode & 8) return value; | ||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | ||
/******/ var ns = Object.create(null); | ||
/******/ __webpack_require__.r(ns); | ||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | ||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | ||
/******/ return ns; | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
/******/ __webpack_require__.n = function(module) { | ||
/******/ var getter = module && module.__esModule ? | ||
/******/ function getDefault() { return module['default']; } : | ||
/******/ function getModuleExports() { return module; }; | ||
/******/ __webpack_require__.d(getter, 'a', getter); | ||
/******/ return getter; | ||
/******/ }; | ||
/******/ | ||
/******/ // Object.prototype.hasOwnProperty.call | ||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
/******/ | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(0); | ||
/******/ return __webpack_require__(__webpack_require__.s = 0); | ||
/******/ }) | ||
@@ -58,206 +102,185 @@ /************************************************************************/ | ||
/* 0 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/***/ (function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
var _require = __webpack_require__(1), | ||
assert = _require.assert, | ||
forOwn = _require.forOwn, | ||
has = _require.has, | ||
resolve = _require.resolve; | ||
var _require = __webpack_require__(1), | ||
assert = _require.assert, | ||
forOwn = _require.forOwn, | ||
has = _require.has, | ||
resolve = _require.resolve; | ||
var create = function create() { | ||
// Module definitions. | ||
var definitions = {}; // Module instances. | ||
var create = function create() { | ||
// Module definitions. | ||
var definitions = {}; | ||
var instances = {}; // Defines a module for `id: String`, optional `deps: Array[String]`, | ||
// `def: mixed`. | ||
// Module instances. | ||
var instances = {}; | ||
var define = function define(id, deps, def) { | ||
// sort arguments | ||
if (def === undefined) { | ||
var _ref = [[], deps]; | ||
deps = _ref[0]; | ||
def = _ref[1]; | ||
} // check arguments | ||
// Defines a module for `id: String`, optional `deps: Array[String]`, | ||
// `def: mixed`. | ||
var define = function define(id, deps, def) { | ||
// sort arguments | ||
if (def === undefined) { | ||
var _ref = [[], deps]; | ||
deps = _ref[0]; | ||
def = _ref[1]; | ||
} | ||
// check arguments | ||
assert(typeof id === 'string', 'id must be string: ' + id); | ||
assert(!has(definitions, id), 'id already defined: ' + id); | ||
assert(Array.isArray(deps), 'deps must be array: ' + id); | ||
// accept definition | ||
definitions[id] = { | ||
id: id, | ||
deps: deps, | ||
fn: typeof def === 'function' ? def : function () { | ||
return def; | ||
} | ||
}; | ||
}; | ||
assert(typeof id === 'string', "id must be string: ".concat(id)); | ||
assert(!has(definitions, id), "id already defined: ".concat(id)); | ||
assert(Array.isArray(deps), "deps must be array: ".concat(id)); // accept definition | ||
// Returns an instance for `id`. If a `mocks` object is given, it is | ||
// used to resolve the dependencies. | ||
var require = function require(id, mocks) { | ||
assert(typeof id === 'string', 'id must be string: ' + id); | ||
return resolve(definitions, mocks || instances, id); | ||
}; | ||
definitions[id] = { | ||
id: id, | ||
deps: deps, | ||
fn: typeof def === 'function' ? def : function () { | ||
return def; | ||
} | ||
}; | ||
}; // Returns an instance for `id`. If a `mocks` object is given, it is | ||
// used to resolve the dependencies. | ||
// Returns an object that holds infos about the current definitions | ||
// and dependencies. | ||
var state = function state() { | ||
var res = {}; | ||
forOwn(definitions, function (def, id) { | ||
res[id] = { | ||
var require = function require(id, mocks) { | ||
assert(typeof id === 'string', "id must be string: ".concat(id)); | ||
return resolve(definitions, mocks || instances, id); | ||
}; // Returns an object that holds infos about the current definitions | ||
// and dependencies. | ||
// direct dependencies | ||
deps: def.deps.slice(), | ||
// transitive dependencies | ||
reqs: resolve(definitions, null, id), | ||
var state = function state() { | ||
var res = {}; | ||
forOwn(definitions, function (def, id) { | ||
res[id] = { | ||
// direct dependencies | ||
deps: def.deps.slice(), | ||
// transitive dependencies | ||
reqs: resolve(definitions, null, id), | ||
// already initiated/required | ||
init: has(instances, id) | ||
}; | ||
}); | ||
forOwn(definitions, function (def, id) { | ||
var inv = []; | ||
forOwn(definitions, function (def2, id2) { | ||
if (res[id2].reqs.indexOf(id) >= 0) { | ||
inv.push(id2); | ||
} | ||
}); // all inverse dependencies | ||
// already initiated/required | ||
init: has(instances, id) | ||
}; | ||
}); | ||
res[id].reqd = inv; | ||
}); | ||
return res; | ||
}; // Returns a string that displays module dependencies. | ||
forOwn(definitions, function (def, id) { | ||
var inv = []; | ||
forOwn(definitions, function (def2, id2) { | ||
if (res[id2].reqs.indexOf(id) >= 0) { | ||
inv.push(id2); | ||
} | ||
}); | ||
var log = function log(inv) { | ||
var out = '\n'; | ||
forOwn(state(), function (st, id) { | ||
var list = inv ? st.reqd : st.reqs; | ||
out += "".concat(st.init ? '*' : ' ', " ").concat(id, " -> [ ").concat(list.join(', '), " ]\n"); | ||
}); | ||
return out; | ||
}; | ||
// all inverse dependencies | ||
res[id].reqd = inv; | ||
}); | ||
return { | ||
create: create, | ||
define: define, | ||
log: log, | ||
require: require, | ||
state: state, | ||
_d: definitions, | ||
_i: instances | ||
}; | ||
}; | ||
return res; | ||
}; | ||
module.exports = create(); | ||
// Returns a string that displays module dependencies. | ||
var log = function log(inv) { | ||
var out = '\n'; | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports) { | ||
forOwn(state(), function (st, id) { | ||
var list = inv ? st.reqd : st.reqs; | ||
out += (st.init ? '*' : ' ') + ' ' + id + ' -> [ ' + list.join(', ') + ' ]\n'; | ||
}); | ||
// Throws an error if `expr` is falsy. | ||
var assert = function assert(expr, msg) { | ||
if (!expr) { | ||
throw new Error("[modulejs] ".concat(msg)); | ||
} | ||
}; // Iterates over all own props of an object. | ||
return out; | ||
}; | ||
return { | ||
create: create, | ||
define: define, | ||
log: log, | ||
require: require, | ||
state: state, | ||
_d: definitions, | ||
_i: instances | ||
}; | ||
}; | ||
var forOwn = function forOwn(x, fn) { | ||
Object.keys(x).forEach(function (k) { | ||
return fn(x[k], k); | ||
}); | ||
}; // Short cut for `hasOwnProperty`. | ||
module.exports = create(); | ||
/***/ }, | ||
/* 1 */ | ||
/***/ function(module, exports) { | ||
var has = function has(x, id) { | ||
return (x || {}).hasOwnProperty(id); | ||
}; // Returns an new array containing no duplicates. Preserves first occurence and | ||
// order. | ||
"use strict"; | ||
// Throws an error if `expr` is falsy. | ||
var assert = function assert(expr, msg) { | ||
if (!expr) { | ||
throw new Error("[modulejs] " + msg); | ||
} | ||
}; | ||
var uniq = function uniq(x) { | ||
var cache = {}; | ||
return x.filter(function (val) { | ||
var res = !cache[val]; | ||
cache[val] = 1; | ||
return res; | ||
}); | ||
}; // Resolves `id` to an object for the given definitions `defs` and already | ||
// instantiated objects `insts`. Adds any new instances to `insts`. If `insts` | ||
// is null it only resolves dependency IDs. | ||
// `stack` is used internal to check for circular dependencies. | ||
// Iterates over all own props of an object. | ||
var forOwn = function forOwn(x, fn) { | ||
Object.keys(x).forEach(function (k) { | ||
return fn(x[k], k); | ||
}); | ||
}; | ||
// Short cut for `hasOwnProperty`. | ||
var has = function has(x, id) { | ||
return (x || {}).hasOwnProperty(id); | ||
}; | ||
var resolve = function resolve(defs, insts, id, stack) { | ||
var onlyDepIds = !insts; // if a module is required that was already created return that object | ||
// Returns an new array containing no duplicates. Preserves first occurence and | ||
// order. | ||
var uniq = function uniq(x) { | ||
var cache = {}; | ||
return x.filter(function (val) { | ||
var res = !cache[val]; | ||
cache[val] = 1; | ||
return res; | ||
}); | ||
}; | ||
if (!onlyDepIds && has(insts, id)) { | ||
return insts[id]; | ||
} // check if `id` is defined | ||
// Resolves `id` to an object for the given definitions `defs` and already | ||
// instantiated objects `insts`. Adds any new instances to `insts`. If `insts` | ||
// is null it only resolves dependency IDs. | ||
// `stack` is used internal to check for circular dependencies. | ||
var resolve = function resolve(defs, insts, id, stack) { | ||
var onlyDepIds = !insts; | ||
// if a module is required that was already created return that object | ||
if (!onlyDepIds && has(insts, id)) { | ||
return insts[id]; | ||
} | ||
var def = defs[id]; | ||
assert(def, "id not defined: ".concat(id)); // copy resolve stack and add this `id` | ||
// check if `id` is defined | ||
var def = defs[id]; | ||
assert(def, "id not defined: " + id); | ||
stack = (stack || []).slice(); | ||
stack.push(id); // if `onlyDepIds` this will hold the dependency-IDs, otherwise it | ||
// will hold the dependency-objects | ||
// copy resolve stack and add this `id` | ||
stack = (stack || []).slice(); | ||
stack.push(id); | ||
var deps = []; | ||
def.deps.forEach(function (depId) { | ||
// check for circular dependencies | ||
assert(stack.indexOf(depId) < 0, "circular dependencies: ".concat(depId, " in ").concat(stack)); | ||
var depDeps = resolve(defs, insts, depId, stack); | ||
// if `onlyDepIds` this will hold the dependency-IDs, otherwise it | ||
// will hold the dependency-objects | ||
var deps = []; | ||
if (onlyDepIds) { | ||
deps = deps.concat(depDeps); | ||
deps.push(depId); | ||
} else { | ||
deps.push(depDeps); | ||
} | ||
}); | ||
def.deps.forEach(function (depId) { | ||
// check for circular dependencies | ||
assert(stack.indexOf(depId) < 0, "circular dependencies: " + depId + " in " + stack); | ||
if (onlyDepIds) { | ||
// return only dependency-ids in correct order | ||
return uniq(deps); | ||
} // create, memorize and return object | ||
// using def.fn(...deps) instead would cost ~120B uglified | ||
var depDeps = resolve(defs, insts, depId, stack); | ||
if (onlyDepIds) { | ||
deps = deps.concat(depDeps); | ||
deps.push(depId); | ||
} else { | ||
deps.push(depDeps); | ||
} | ||
}); | ||
if (onlyDepIds) { | ||
// return only dependency-ids in correct order | ||
return uniq(deps); | ||
} | ||
var obj = def.fn.apply(undefined, deps); | ||
insts[id] = obj; | ||
return obj; | ||
}; | ||
// create, memorize and return object | ||
// using def.fn(...deps) instead would cost ~120B uglified | ||
var obj = def.fn.apply(undefined, deps); | ||
insts[id] = obj; | ||
return obj; | ||
}; | ||
module.exports = { | ||
assert: assert, | ||
forOwn: forOwn, | ||
has: has, | ||
resolve: resolve, | ||
uniq: uniq | ||
}; | ||
module.exports = { | ||
assert: assert, | ||
forOwn: forOwn, | ||
has: has, | ||
resolve: resolve, | ||
uniq: uniq | ||
}; | ||
/***/ } | ||
/******/ ]) | ||
}); | ||
; | ||
/***/ }) | ||
/******/ ]); | ||
}); |
@@ -1,2 +0,2 @@ | ||
/*! modulejs v2.4.0 - https://larsjung.de/modulejs/ */ | ||
!function(n,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.modulejs=r():n.modulejs=r()}(this,function(){return function(n){function r(t){if(e[t])return e[t].exports;var i=e[t]={exports:{},id:t,loaded:!1};return n[t].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var e={};return r.m=n,r.c=e,r.p="",r(0)}([function(n,r,e){"use strict";var t=e(1),i=t.assert,o=t.forOwn,u=t.has,f=t.resolve,s=function n(){var r={},e={},t=function(n,e,t){if(void 0===t){var o=[[],e];e=o[0],t=o[1]}i("string"==typeof n,"id must be string: "+n),i(!u(r,n),"id already defined: "+n),i(Array.isArray(e),"deps must be array: "+n),r[n]={id:n,deps:e,fn:"function"==typeof t?t:function(){return t}}},s=function(n,t){return i("string"==typeof n,"id must be string: "+n),f(r,t||e,n)},c=function(){var n={};return o(r,function(t,i){n[i]={deps:t.deps.slice(),reqs:f(r,null,i),init:u(e,i)}}),o(r,function(e,t){var i=[];o(r,function(r,e){n[e].reqs.indexOf(t)>=0&&i.push(e)}),n[t].reqd=i}),n},a=function(n){var r="\n";return o(c(),function(e,t){var i=n?e.reqd:e.reqs;r+=(e.init?"*":" ")+" "+t+" -> [ "+i.join(", ")+" ]\n"}),r};return{create:n,define:t,log:a,require:s,state:c,_d:r,_i:e}};n.exports=s()},function(n,r){"use strict";var e=function(n,r){if(!n)throw new Error("[modulejs] "+r)},t=function(n,r){Object.keys(n).forEach(function(e){return r(n[e],e)})},i=function(n,r){return(n||{}).hasOwnProperty(r)},o=function(n){var r={};return n.filter(function(n){var e=!r[n];return r[n]=1,e})},u=function n(r,t,u,f){var s=!t;if(!s&&i(t,u))return t[u];var c=r[u];e(c,"id not defined: "+u),f=(f||[]).slice(),f.push(u);var a=[];if(c.deps.forEach(function(i){e(f.indexOf(i)<0,"circular dependencies: "+i+" in "+f);var o=n(r,t,i,f);s?(a=a.concat(o),a.push(i)):a.push(o)}),s)return o(a);var d=c.fn.apply(void 0,a);return t[u]=d,d};n.exports={assert:e,forOwn:t,has:i,resolve:u,uniq:o}}])}); | ||
/*! modulejs v2.5.0 - https://larsjung.de/modulejs/ */ | ||
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("modulejs",[],n):"object"==typeof exports?exports.modulejs=n():e.modulejs=n()}("undefined"!=typeof self?self:this,function(){return function(t){var r={};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)o.d(t,r,function(e){return n[e]}.bind(null,r));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o(o.s=0)}([function(e,n,t){var r=t(1),o=r.assert,i=r.forOwn,c=r.has,f=r.resolve;e.exports=function e(){var u={},t={},n=function(){var o={};return i(u,function(e,n){o[n]={deps:e.deps.slice(),reqs:f(u,null,n),init:c(t,n)}}),i(u,function(e,t){var r=[];i(u,function(e,n){0<=o[n].reqs.indexOf(t)&&r.push(n)}),o[t].reqd=r}),o};return{create:e,define:function(e,n,t){if(void 0===t){var r=[[],n];n=r[0],t=r[1]}o("string"==typeof e,"id must be string: ".concat(e)),o(!c(u,e),"id already defined: ".concat(e)),o(Array.isArray(n),"deps must be array: ".concat(e)),u[e]={id:e,deps:n,fn:"function"==typeof t?t:function(){return t}}},log:function(r){var o="\n";return i(n(),function(e,n){var t=r?e.reqd:e.reqs;o+="".concat(e.init?"*":" "," ").concat(n," -> [ ").concat(t.join(", ")," ]\n")}),o},require:function(e,n){return o("string"==typeof e,"id must be string: ".concat(e)),f(u,n||t,e)},state:n,_d:u,_i:t}}()},function(e,n){var a=function(e,n){if(!e)throw new Error("[modulejs] ".concat(n))},s=function(e,n){return(e||{}).hasOwnProperty(n)},d=function(e){var t={};return e.filter(function(e){var n=!t[e];return t[e]=1,n})};e.exports={assert:a,forOwn:function(n,t){Object.keys(n).forEach(function(e){return t(n[e],e)})},has:s,resolve:function t(r,o,e,u){var i=!o;if(!i&&s(o,e))return o[e];var n=r[e];a(n,"id not defined: ".concat(e)),(u=(u||[]).slice()).push(e);var c=[];if(n.deps.forEach(function(e){a(u.indexOf(e)<0,"circular dependencies: ".concat(e," in ").concat(u));var n=t(r,o,e,u);i?(c=c.concat(n)).push(e):c.push(n)}),i)return d(c);var f=n.fn.apply(void 0,c);return o[e]=f},uniq:d}}])}); |
17
ghu.js
const {resolve, join} = require('path'); | ||
const {ghu, jszip, mapfn, read, remove, run, uglify, webpack, wrap, write} = require('ghu'); | ||
const {ghu, jszip, mapfn, read, remove, uglify, webpack, wrap, write} = require('ghu'); | ||
@@ -25,14 +25,13 @@ const NAME = 'modulejs'; | ||
ghu.task('lint', () => { | ||
return run('eslint .', {stdio: 'inherit'}); | ||
}); | ||
ghu.task('build:script', runtime => { | ||
const webpackConfig = { | ||
mode: 'none', | ||
output: { | ||
library: NAME, | ||
libraryTarget: 'umd' | ||
libraryTarget: 'umd', | ||
umdNamedDefine: true, | ||
globalObject: '(typeof self !== \'undefined\' ? self : this)' | ||
}, | ||
module: { | ||
loaders: [ | ||
rules: [ | ||
{ | ||
@@ -43,3 +42,3 @@ include: [LIB], | ||
cacheDirectory: true, | ||
presets: ['env'] | ||
presets: ['@babel/preset-env'] | ||
} | ||
@@ -56,3 +55,3 @@ } | ||
.then(write(`${BUILD}/${NAME}-${runtime.pkg.version}.js`, {overwrite: true})) | ||
.then(uglify({compressor: {warnings: false}})) | ||
.then(uglify()) | ||
.then(wrap(runtime.commentJs)) | ||
@@ -59,0 +58,0 @@ .then(write(`${DIST}/${NAME}.min.js`, {overwrite: true})) |
{ | ||
"name": "modulejs", | ||
"version": "2.4.0", | ||
"version": "2.5.0", | ||
"description": "Lightweight JavaScript module system.", | ||
@@ -23,8 +23,9 @@ "homepage": "https://larsjung.de/modulejs/", | ||
"devDependencies": { | ||
"babel-loader": "7.1.1", | ||
"babel-preset-env": "1.7.0", | ||
"eslint": "5.15.1", | ||
"ghu": "0.13.0", | ||
"@babel/core": "7.4.0", | ||
"@babel/preset-env": "7.4.2", | ||
"babel-loader": "8.0.5", | ||
"eslint": "5.16.0", | ||
"ghu": "0.15.0", | ||
"isparta": "4.1.1", | ||
"scar": "1.0.0" | ||
"scar": "1.4.0" | ||
}, | ||
@@ -31,0 +32,0 @@ "engines": { |
47857
1068
7